@Override public V rightPopAndLeftPush(K sourceKey, K destinationKey) { byte[] rawDestKey = rawKey(destinationKey); return execute(new ValueDeserializingRedisCallback(sourceKey) { @Override protected byte[] inRedis(byte[] rawSourceKey, RedisConnection connection) { return connection.rPopLPush(rawSourceKey, rawDestKey); } }, true); }
@Override public V rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit) { int tm = (int) TimeoutUtils.toSeconds(timeout, unit); byte[] rawDestKey = rawKey(destinationKey); return execute(new ValueDeserializingRedisCallback(sourceKey) { @Override protected byte[] inRedis(byte[] rawSourceKey, RedisConnection connection) { return connection.bRPopLPush(tm, rawSourceKey, rawDestKey); } }, true); }
@Override public Long size(K key) { byte[] rawKey = rawKey(key); return execute(connection -> connection.lLen(rawKey), true); }
@Override public Long leftPush(K key, V value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.lPush(rawKey, rawValue), true); }
@Override public Long leftPushAll(K key, Collection<V> values) { byte[] rawKey = rawKey(key); byte[][] rawValues = rawValues(values); return execute(connection -> connection.lPush(rawKey, rawValues), true); }
@Override public List<V> range(K key, long start, long end) { byte[] rawKey = rawKey(key); return execute(connection -> deserializeValues(connection.lRange(rawKey, start, end)), true); }
@Override public Long remove(K key, long count, Object value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.lRem(rawKey, count, rawValue), true); }
@Override public Long rightPushAll(K key, Collection<V> values) { byte[] rawKey = rawKey(key); byte[][] rawValues = rawValues(values); return execute(connection -> connection.rPush(rawKey, rawValues), true); }
@Override public Long rightPushIfPresent(K key, V value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.rPushX(rawKey, rawValue), true); }
@Override public Long leftPushAll(K key, V... values) { byte[] rawKey = rawKey(key); byte[][] rawValues = rawValues(values); return execute(connection -> connection.lPush(rawKey, rawValues), true); }
@Override public Long leftPushIfPresent(K key, V value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.lPushX(rawKey, rawValue), true); }
@Override public Long rightPush(K key, V value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.rPush(rawKey, rawValue), true); }
@Override public Long rightPushAll(K key, V... values) { byte[] rawKey = rawKey(key); byte[][] rawValues = rawValues(values); return execute(connection -> connection.rPush(rawKey, rawValues), true); }
@Override public Long rightPush(K key, V pivot, V value) { byte[] rawKey = rawKey(key); byte[] rawPivot = rawValue(pivot); byte[] rawValue = rawValue(value); return execute(connection -> connection.lInsert(rawKey, Position.AFTER, rawPivot, rawValue), true); }
@Override public Long leftPush(K key, V pivot, V value) { byte[] rawKey = rawKey(key); byte[] rawPivot = rawValue(pivot); byte[] rawValue = rawValue(value); return execute(connection -> connection.lInsert(rawKey, Position.BEFORE, rawPivot, rawValue), true); }
@Override public Long size(K key) { byte[] rawKey = rawKey(key); return execute(connection -> connection.lLen(rawKey), true); }
@Override public Long leftPushAll(K key, V... values) { byte[] rawKey = rawKey(key); byte[][] rawValues = rawValues(values); return execute(connection -> connection.lPush(rawKey, rawValues), true); }
@Override public Long leftPush(K key, V value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.lPush(rawKey, rawValue), true); }
@Override public Long leftPushIfPresent(K key, V value) { byte[] rawKey = rawKey(key); byte[] rawValue = rawValue(value); return execute(connection -> connection.lPushX(rawKey, rawValue), true); }
@Override public Long rightPush(K key, V pivot, V value) { byte[] rawKey = rawKey(key); byte[] rawPivot = rawValue(pivot); byte[] rawValue = rawValue(value); return execute(connection -> connection.lInsert(rawKey, Position.AFTER, rawPivot, rawValue), true); }