@Override public RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpire', KEYS[1], ARGV[1]); " + "return redis.call('pexpire', KEYS[2], ARGV[1]); ", Arrays.<Object>asList(getName(), configName), timeUnit.toMillis(timeToLive)); }
@Override public RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpire', KEYS[1], ARGV[1]); " + "return redis.call('pexpire', KEYS[2], ARGV[1]); ", Arrays.<Object>asList(getName(), configName), timeUnit.toMillis(timeToLive)); }
@Override public RFuture<Boolean> expireAtAsync(long timestamp) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpireat', KEYS[1], ARGV[1]); " + "return redis.call('pexpireat', KEYS[2], ARGV[1]); ", Arrays.<Object>asList(getName(), configName), timestamp); }
@Override public RFuture<Boolean> clearExpireAsync() { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('persist', KEYS[1]); " + "return redis.call('persist', KEYS[2]); ", Arrays.<Object>asList(getName(), configName)); }
@Override public RFuture<Boolean> clearExpireAsync() { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('persist', KEYS[1]); " + "return redis.call('persist', KEYS[2]); ", Arrays.<Object>asList(getName(), configName)); }
@Override public RFuture<Boolean> expireAtAsync(long timestamp) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpireat', KEYS[1], ARGV[1]); " + "return redis.call('pexpireat', KEYS[2], ARGV[1]); ", Arrays.<Object>asList(getName(), configName), timestamp); }
@Override public RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpire', KEYS[2], ARGV[1]); " + "return redis.call('pexpire', KEYS[1], ARGV[1]); ", Arrays.<Object>asList(getName(), getSemaphoreName()), timeUnit.toMillis(timeToLive)); }
@Override public RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpire', KEYS[2], ARGV[1]); " + "return redis.call('pexpire', KEYS[1], ARGV[1]); ", Arrays.<Object>asList(getName(), getSemaphoreName()), timeUnit.toMillis(timeToLive)); }
@Override public RFuture<Boolean> clearExpireAsync() { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('persist', KEYS[2]); " + "return redis.call('persist', KEYS[1]); ", Arrays.<Object>asList(getName(), getSemaphoreName())); }
@Override public RFuture<Boolean> expireAtAsync(long timestamp) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpireat', KEYS[2], ARGV[1]); " + "return redis.call('pexpireat', KEYS[1], ARGV[1]); ", Arrays.<Object>asList(getName(), getSemaphoreName()), timestamp); }
@Override public RFuture<Boolean> expireAtAsync(long timestamp) { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('pexpireat', KEYS[2], ARGV[1]); " + "return redis.call('pexpireat', KEYS[1], ARGV[1]); ", Arrays.<Object>asList(getName(), getSemaphoreName()), timestamp); }
@Override public RFuture<Boolean> clearExpireAsync() { return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "redis.call('persist', KEYS[2]); " + "return redis.call('persist', KEYS[1]); ", Arrays.<Object>asList(getName(), getSemaphoreName())); }
public RFuture<Integer> drainToAsync(Collection<? super V> c, int maxElements) { if (c == null) { throw new NullPointerException(); } return commandExecutor.evalWriteAsync(getName(), codec, new RedisCommand<Object>("EVAL", new ListDrainToDecoder(c)), "local elemNum = math.min(ARGV[1], redis.call('llen', KEYS[1])) - 1;" + "local vals = redis.call('lrange', KEYS[1], 0, elemNum); " + "redis.call('ltrim', KEYS[1], elemNum + 1, -1); " + "return vals", Collections.<Object>singletonList(getName()), maxElements); }
public RFuture<Boolean> trySetCapacityAsync(int capacity) { String channelName = RedissonSemaphore.getChannelName(getSemaphoreName()); return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "local value = redis.call('get', KEYS[1]); " + "if (value == false) then " + "redis.call('set', KEYS[1], ARGV[1]); " + "redis.call('publish', KEYS[2], ARGV[1]); " + "return 1;" + "end;" + "return 0;", Arrays.<Object>asList(getSemaphoreName(), channelName), capacity); }
public RFuture<Integer> drainToAsync(Collection<? super V> c, int maxElements) { if (c == null) { throw new NullPointerException(); } return commandExecutor.evalWriteAsync(getName(), codec, new RedisCommand<Object>("EVAL", new ListDrainToDecoder(c)), "local elemNum = math.min(ARGV[1], redis.call('llen', KEYS[1])) - 1;" + "local vals = redis.call('lrange', KEYS[1], 0, elemNum); " + "redis.call('ltrim', KEYS[1], elemNum + 1, -1); " + "return vals", Collections.<Object>singletonList(getName()), maxElements); }
public RFuture<Integer> drainToAsync(Collection<? super V> c) { if (c == null) { throw new NullPointerException(); } return commandExecutor.evalWriteAsync(getName(), codec, new RedisCommand<Object>("EVAL", new ListDrainToDecoder(c)), "local vals = redis.call('lrange', KEYS[1], 0, -1); " + "redis.call('ltrim', KEYS[1], -1, 0); " + "return vals", Collections.<Object>singletonList(getName())); }
public RFuture<Integer> drainToAsync(Collection<? super V> c) { if (c == null) { throw new NullPointerException(); } return commandExecutor.evalWriteAsync(getName(), codec, new RedisCommand<Object>("EVAL", new ListDrainToDecoder(c)), "local vals = redis.call('lrange', KEYS[1], 0, -1); " + "redis.call('ltrim', KEYS[1], -1, 0); " + "return vals", Collections.<Object>singletonList(getName())); }
public RFuture<Boolean> trySetCapacityAsync(int capacity) { String channelName = RedissonSemaphore.getChannelName(getSemaphoreName()); return commandExecutor.evalWriteAsync(getName(), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "local value = redis.call('get', KEYS[1]); " + "if (value == false) then " + "redis.call('set', KEYS[1], ARGV[1]); " + "redis.call('publish', KEYS[2], ARGV[1]); " + "return 1;" + "end;" + "return 0;", Arrays.<Object>asList(getSemaphoreName(), channelName), capacity); }
@Override public RFuture<V> pollAsync() { String channelName = RedissonSemaphore.getChannelName(getSemaphoreName()); return commandExecutor.evalWriteAsync(getName(), codec, RedisCommands.EVAL_OBJECT, "local res = redis.call('lpop', KEYS[1]);" + "if res ~= false then " + "local value = redis.call('incrby', KEYS[2], ARGV[1]); " + "redis.call('publish', KEYS[3], value); " + "end;" + "return res;", Arrays.<Object>asList(getName(), getSemaphoreName(), channelName), 1); }
@Override public RFuture<V> pollAsync() { String channelName = RedissonSemaphore.getChannelName(getSemaphoreName()); return commandExecutor.evalWriteAsync(getName(), codec, RedisCommands.EVAL_OBJECT, "local res = redis.call('lpop', KEYS[1]);" + "if res ~= false then " + "local value = redis.call('incrby', KEYS[2], ARGV[1]); " + "redis.call('publish', KEYS[3], value); " + "end;" + "return res;", Arrays.<Object>asList(getName(), getSemaphoreName(), channelName), 1); }