diff --git a/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java b/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java index 1cdcd4247..947b43c8f 100644 --- a/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java +++ b/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java @@ -945,7 +945,8 @@ public class RedissonLocalCachedMap extends RedissonMap implements R CacheKey cacheKey = localCacheView.toCacheKey(keyState); byte[] entryId = generateLogEntryId(cacheKey.getKeyHash()); ByteBuf msg = createSyncMessage(keyState, valueState, cacheKey); - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "if redis.call('hexists', KEYS[1], ARGV[1]) == 1 then " + "redis.call('hset', KEYS[1], ARGV[1], ARGV[2]); " @@ -961,7 +962,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R + "else " + "return 0; " + "end", - Arrays.asList(getName(key), listener.getInvalidationTopicName(), listener.getUpdatesLogName()), + Arrays.asList(name, listener.getInvalidationTopicName(), listener.getUpdatesLogName()), keyState, valueState, invalidateEntryOnChange, msg, System.currentTimeMillis(), entryId); } @@ -972,7 +973,8 @@ public class RedissonLocalCachedMap extends RedissonMap implements R CacheKey cacheKey = localCacheView.toCacheKey(keyState); byte[] entryId = generateLogEntryId(cacheKey.getKeyHash()); ByteBuf msg = createSyncMessage(keyState, valueState, cacheKey); - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "if redis.call('hexists', KEYS[1], ARGV[1]) == 1 then " + "local v = redis.call('hget', KEYS[1], ARGV[1]); " + "redis.call('hset', KEYS[1], ARGV[1], ARGV[2]); " @@ -989,7 +991,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R + "else " + "return nil; " + "end", - Arrays.asList(getName(key), listener.getInvalidationTopicName(), listener.getUpdatesLogName()), + Arrays.asList(name, listener.getInvalidationTopicName(), listener.getUpdatesLogName()), keyState, valueState, invalidateEntryOnChange, msg, System.currentTimeMillis(), entryId); } @@ -1031,7 +1033,8 @@ public class RedissonLocalCachedMap extends RedissonMap implements R CacheKey cacheKey = localCacheView.toCacheKey(keyState); byte[] entryId = generateLogEntryId(cacheKey.getKeyHash()); ByteBuf msg = createSyncMessage(keyState, newValueState, cacheKey); - return commandExecutor.evalWriteAsync(getName(key), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "if redis.call('hget', KEYS[1], ARGV[1]) == ARGV[2] then " + "redis.call('hset', KEYS[1], ARGV[1], ARGV[3]); " + "if ARGV[4] == '1' then " @@ -1045,7 +1048,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R + "else " + "return 0; " + "end", - Arrays.asList(getName(key), listener.getInvalidationTopicName(), listener.getUpdatesLogName()), + Arrays.asList(name, listener.getInvalidationTopicName(), listener.getUpdatesLogName()), keyState, oldValueState, newValueState, invalidateEntryOnChange, msg, System.currentTimeMillis(), entryId); } @@ -1085,8 +1088,9 @@ public class RedissonLocalCachedMap extends RedissonMap implements R CacheKey cacheKey = localCacheView.toCacheKey(keyState); byte[] entryId = generateLogEntryId(cacheKey.getKeyHash()); ByteBuf msg = encode(new LocalCachedMapInvalidate(instanceId, cacheKey.getKeyHash())); - - return commandExecutor.evalWriteAsync(getName(key), LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, + + String name = getName(key); + return commandExecutor.evalWriteAsync(name, LongCodec.INSTANCE, RedisCommands.EVAL_BOOLEAN, "if redis.call('hget', KEYS[1], ARGV[1]) == ARGV[2] then " + "if ARGV[3] == '1' then " + "redis.call('publish', KEYS[2], ARGV[4]); " @@ -1099,7 +1103,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R + "else " + "return 0 " + "end", - Arrays.asList(getName(key), listener.getInvalidationTopicName(), listener.getUpdatesLogName()), + Arrays.asList(name, listener.getInvalidationTopicName(), listener.getUpdatesLogName()), keyState, valueState, invalidateEntryOnChange, msg, System.currentTimeMillis(), entryId); } diff --git a/redisson/src/main/java/org/redisson/RedissonMapCache.java b/redisson/src/main/java/org/redisson/RedissonMapCache.java index 2ec956357..d0563c7bd 100644 --- a/redisson/src/main/java/org/redisson/RedissonMapCache.java +++ b/redisson/src/main/java/org/redisson/RedissonMapCache.java @@ -133,7 +133,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac public RFuture containsKeyAsync(Object key) { checkKey(key); - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "local expireDate = 92233720368547758; " + "if value ~= false then " + @@ -163,7 +164,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac " return 1;" + "end;" + "return 0; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getLastAccessTimeSetNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getLastAccessTimeSetName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key)); } @@ -310,7 +311,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac maxIdleTimeout = System.currentTimeMillis() + maxIdleDelta; } - RFuture future = commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + RFuture future = commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local insertable = false; " + "local value = redis.call('hget', KEYS[1], ARGV[5]); " + "if value == false then " @@ -388,8 +390,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "redis.call('zadd', KEYS[3], t + ARGV[1], ARGV[5]); " + "return val; " + "end; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), ttlTimeout, maxIdleTimeout, maxIdleDelta, encodeMapKey(key), encodeMapValue(value)); if (hasNoWriter()) { return future; @@ -401,7 +403,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac @Override protected RFuture removeOperationAsync(Object key, Object value) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "if value == false then " + "return 0; " @@ -436,14 +439,15 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "else " + "return 0; " + "end", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getRemovedChannelNameByKey(key), - getLastAccessTimeSetNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getRemovedChannelName(name), + getLastAccessTimeSetName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } @Override public RFuture getOperationAsync(K key) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "if value == false then " + "return nil; " @@ -471,7 +475,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac " redis.call('zadd', KEYS[4], tonumber(ARGV[1]), ARGV[2]); " + "end; " + "return val; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getLastAccessTimeSetNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getLastAccessTimeSetName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key)); } @@ -482,7 +486,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac @Override protected RFuture putOperationAsync(K key, V value) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local v = redis.call('hget', KEYS[1], ARGV[2]);" + "local exists = false;" + "if v ~= false then" + @@ -544,14 +549,15 @@ public class RedissonMapCache extends RedissonMap implements RMapCac "local msg = struct.pack('Lc0Lc0Lc0', string.len(ARGV[2]), ARGV[2], string.len(ARGV[3]), ARGV[3], string.len(val), val);" + "redis.call('publish', KEYS[5], msg);" + "return val;", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getUpdatedChannelNameByKey(key), getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getUpdatedChannelName(name), getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } @Override protected RFuture putIfAbsentOperationAsync(K key, V value) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "local maxSize = tonumber(redis.call('hget', KEYS[7], 'max-size'));" + "local lastAccessTimeSetName = KEYS[5]; " @@ -607,8 +613,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "local msg = struct.pack('Lc0Lc0', string.len(ARGV[2]), ARGV[2], string.len(ARGV[3]), ARGV[3]); " + "redis.call('publish', KEYS[4], msg); " + "return nil;", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } @@ -640,7 +646,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac @Override protected RFuture addAndGetOperationAsync(K key, Number value) { ByteBuf keyState = encodeMapKey(key); - return commandExecutor.evalWriteAsync(getName(key), StringCodec.INSTANCE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, StringCodec.INSTANCE, new RedisCommand("EVAL", new NumberConvertor(value.getClass())), "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "local expireDate = 92233720368547758; " @@ -704,8 +711,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac "end; " + "return tostring(newValue); ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getUpdatedChannelNameByKey(key), getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getUpdatedChannelName(name), getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), keyState, new BigDecimal(value.toString()).toPlainString()); } @@ -770,7 +777,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac maxIdleTimeout = currentTime + maxIdleDelta; } - RFuture future = commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + RFuture future = commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local insertable = false; " + "local value = redis.call('hget', KEYS[1], ARGV[5]); " + "local t, val;" @@ -843,8 +851,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "redis.call('publish', KEYS[5], msg); " + "return 0;" + "end;", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getUpdatedChannelNameByKey(key), getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getUpdatedChannelName(name), getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), ttlTimeout, maxIdleTimeout, maxIdleDelta, encodeMapKey(key), encodeMapValue(value)); return future; } @@ -907,7 +915,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac protected RFuture putOperationAsync(K key, V value, long ttlTimeout, long maxIdleTimeout, long maxIdleDelta, long ttlTimeoutDelta) { - RFuture future = commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + RFuture future = commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local insertable = false; " + "local v = redis.call('hget', KEYS[1], ARGV[5]); " + "if v == false then " @@ -983,8 +992,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "redis.call('publish', KEYS[5], msg); " + "return val", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getUpdatedChannelNameByKey(key), getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getUpdatedChannelName(name), getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), ttlTimeout, maxIdleTimeout, maxIdleDelta, encodeMapKey(key), encodeMapValue(value)); return future; } @@ -998,7 +1007,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac public RFuture remainTimeToLiveAsync(K key) { checkKey(key); - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_LONG, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_LONG, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "if value == false then " + "return -2; " @@ -1025,15 +1035,11 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "return -2; " + "end; " + "return val; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name)), System.currentTimeMillis(), encodeMapKey(key)); } - String getTimeoutSetNameByKey(Object key) { - return prefixName("redisson__timeout__set", getName(key)); - } - String getTimeoutSetName(String name) { return prefixName("redisson__timeout__set", name); } @@ -1042,18 +1048,14 @@ public class RedissonMapCache extends RedissonMap implements RMapCac return prefixName("redisson__timeout__set", getName()); } - String getLastAccessTimeSetNameByKey(Object key) { - return prefixName("redisson__map_cache__last_access__set", getName(key)); + String getLastAccessTimeSetName(String name) { + return prefixName("redisson__map_cache__last_access__set", name); } String getLastAccessTimeSetName() { return prefixName("redisson__map_cache__last_access__set", getName()); } - String getIdleSetNameByKey(Object key) { - return prefixName("redisson__idle__set", getName(key)); - } - String getIdleSetName(String name) { return prefixName("redisson__idle__set", name); } @@ -1070,14 +1072,6 @@ public class RedissonMapCache extends RedissonMap implements RMapCac return suffixName(name, "redisson_options"); } - String getOptionsNameByKey(Object key) { - return suffixName(getName(key), "redisson_options"); - } - - String getCreatedChannelNameByKey(Object key) { - return prefixName("redisson_map_cache_created", getName(key)); - } - String getCreatedChannelName(String name) { return prefixName("redisson_map_cache_created", name); } @@ -1086,10 +1080,6 @@ public class RedissonMapCache extends RedissonMap implements RMapCac return prefixName("redisson_map_cache_created", getName()); } - String getUpdatedChannelNameByKey(Object key) { - return prefixName("redisson_map_cache_updated", getName(key)); - } - String getUpdatedChannelName() { return prefixName("redisson_map_cache_updated", getName()); } @@ -1098,10 +1088,6 @@ public class RedissonMapCache extends RedissonMap implements RMapCac return prefixName("redisson_map_cache_updated", name); } - String getExpiredChannelNameByKey(Object key) { - return prefixName("redisson_map_cache_expired", getName(key)); - } - String getExpiredChannelName(String name) { return prefixName("redisson_map_cache_expired", name); } @@ -1110,10 +1096,6 @@ public class RedissonMapCache extends RedissonMap implements RMapCac return prefixName("redisson_map_cache_expired", getName()); } - String getRemovedChannelNameByKey(Object key) { - return prefixName("redisson_map_cache_removed", getName(key)); - } - String getRemovedChannelName() { return prefixName("redisson_map_cache_removed", getName()); } @@ -1125,7 +1107,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac @Override protected RFuture removeOperationAsync(K key) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "if value == false then " + "return nil; " @@ -1155,8 +1138,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "local msg = struct.pack('Lc0Lc0', string.len(ARGV[2]), ARGV[2], string.len(val), val); " + "redis.call('publish', KEYS[4], msg); " + "return val; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getRemovedChannelNameByKey(key), - getLastAccessTimeSetNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getRemovedChannelName(name), + getLastAccessTimeSetName(name)), System.currentTimeMillis(), encodeMapKey(key)); } @@ -1189,7 +1172,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "table.insert(result, val); " + "end;" + "return result;", - Arrays.asList(getName(), getTimeoutSetName(), getIdleSetName(), getRemovedChannelName(), getLastAccessTimeSetName(), getOptionsName()), + Arrays.asList(getName(), getTimeoutSetName(), getIdleSetName(), getRemovedChannelName(), getLastAccessTimeSetName(), getOptionsName()), args.toArray()); return future; } @@ -1217,7 +1200,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "end; " + "end; " + "return redis.call('hdel', KEYS[1], unpack(ARGV)); ", - Arrays.asList(getName(), getTimeoutSetName(), getIdleSetName(), getRemovedChannelName(), getLastAccessTimeSetName(), getOptionsName()), + Arrays.asList(getName(), getTimeoutSetName(), getIdleSetName(), getRemovedChannelName(), getLastAccessTimeSetName(), getOptionsName()), params.toArray()); } @@ -1277,7 +1260,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "end; " + "end;" + "return {res[1], result, idleKeys};", - Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name)), params.toArray()); f.onComplete((res, e) -> { @@ -1309,7 +1292,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "end; " + "end; " + "end; ", - Arrays.asList(name, getIdleSetName(name)), args.toArray()); + Arrays.asList(name, getIdleSetName(name)), args.toArray()); } }); @@ -1381,14 +1364,15 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "redis.call('publish', KEYS[5], msg); " + "return 0;" + "end;", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getUpdatedChannelNameByKey(key), getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(getName(key), getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getUpdatedChannelName(name), getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } @Override protected RFuture fastPutIfAbsentOperationAsync(K key, V value) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "local lastAccessTimeSetName = KEYS[5]; " + "local maxSize = tonumber(redis.call('hget', KEYS[7], 'max-size')); " @@ -1457,8 +1441,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac + "local msg = struct.pack('Lc0Lc0', string.len(ARGV[2]), ARGV[2], string.len(ARGV[3]), ARGV[3]); " + "redis.call('publish', KEYS[4], msg); " + "return 1; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } @@ -1507,7 +1491,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac maxIdleTimeout = System.currentTimeMillis() + maxIdleDelta; } - RFuture future = commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + RFuture future = commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local insertable = false; " + "local value = redis.call('hget', KEYS[1], ARGV[5]); " + "if value == false then " + @@ -1579,8 +1564,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac "else " + " return 0; " + "end; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getCreatedChannelNameByKey(key), - getLastAccessTimeSetNameByKey(key), getRemovedChannelNameByKey(key), getOptionsNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getCreatedChannelName(name), + getLastAccessTimeSetName(name), getRemovedChannelName(name), getOptionsName(name)), System.currentTimeMillis(), ttlTimeout, maxIdleTimeout, maxIdleDelta, encodeMapKey(key), encodeMapValue(value)); if (hasNoWriter()) { return future; @@ -1592,7 +1577,8 @@ public class RedissonMapCache extends RedissonMap implements RMapCac @Override protected RFuture replaceOperationAsync(K key, V oldValue, V newValue) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local v = redis.call('hget', KEYS[1], ARGV[2]); " + "if v == false then " + " return 0; " + @@ -1622,13 +1608,14 @@ public class RedissonMapCache extends RedissonMap implements RMapCac " return 1; " + "end; " + "return 0; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getUpdatedChannelNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getUpdatedChannelName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(oldValue), encodeMapValue(newValue)); } @Override protected RFuture fastReplaceOperationAsync(K key, V value) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "if value == false then " + " return 0; " + @@ -1656,13 +1643,14 @@ public class RedissonMapCache extends RedissonMap implements RMapCac "local msg = struct.pack('Lc0Lc0Lc0', string.len(ARGV[2]), ARGV[2], string.len(ARGV[3]), ARGV[3], string.len(val), val); " + "redis.call('publish', KEYS[4], msg); " + "return 1; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getUpdatedChannelNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getUpdatedChannelName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } @Override protected RFuture replaceOperationAsync(K key, V value) { - return commandExecutor.evalWriteAsync(getName(key), codec, RedisCommands.EVAL_MAP_VALUE, + String name = getName(key); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_MAP_VALUE, "local value = redis.call('hget', KEYS[1], ARGV[2]); " + "if value == false then " + " return nil; " + @@ -1690,7 +1678,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac "local msg = struct.pack('Lc0Lc0Lc0', string.len(ARGV[2]), ARGV[2], string.len(ARGV[3]), ARGV[3], string.len(val), val); " + "redis.call('publish', KEYS[4], msg); " + "return val; ", - Arrays.asList(getName(key), getTimeoutSetNameByKey(key), getIdleSetNameByKey(key), getUpdatedChannelNameByKey(key)), + Arrays.asList(name, getTimeoutSetName(name), getIdleSetName(name), getUpdatedChannelName(name)), System.currentTimeMillis(), encodeMapKey(key), encodeMapValue(value)); } diff --git a/redisson/src/main/java/org/redisson/RedissonSet.java b/redisson/src/main/java/org/redisson/RedissonSet.java index f168b7ee8..21f76ea0b 100644 --- a/redisson/src/main/java/org/redisson/RedissonSet.java +++ b/redisson/src/main/java/org/redisson/RedissonSet.java @@ -91,7 +91,8 @@ public class RedissonSet extends RedissonExpirable implements RSet, ScanIt @Override public RFuture containsAsync(Object o) { - return commandExecutor.readAsync(getName(o), codec, RedisCommands.SISMEMBER, getName(o), encode(o)); + String name = getName(o); + return commandExecutor.readAsync(name, codec, RedisCommands.SISMEMBER, name, encode(o)); } @Override @@ -160,7 +161,8 @@ public class RedissonSet extends RedissonExpirable implements RSet, ScanIt @Override public RFuture addAsync(V e) { - return commandExecutor.writeAsync(getName(e), codec, RedisCommands.SADD_SINGLE, getName(e), encode(e)); + String name = getName(e); + return commandExecutor.writeAsync(name, codec, RedisCommands.SADD_SINGLE, name, encode(e)); } @Override @@ -205,7 +207,8 @@ public class RedissonSet extends RedissonExpirable implements RSet, ScanIt @Override public RFuture removeAsync(Object o) { - return commandExecutor.writeAsync(getName(o), codec, RedisCommands.SREM_SINGLE, getName(o), encode(o)); + String name = getName(o); + return commandExecutor.writeAsync(name, codec, RedisCommands.SREM_SINGLE, name, encode(o)); } @Override @@ -215,7 +218,8 @@ public class RedissonSet extends RedissonExpirable implements RSet, ScanIt @Override public RFuture moveAsync(String destination, V member) { - return commandExecutor.writeAsync(getName(member), codec, RedisCommands.SMOVE, getName(member), destination, encode(member)); + String name = getName(member); + return commandExecutor.writeAsync(name, codec, RedisCommands.SMOVE, name, destination, encode(member)); } @Override diff --git a/redisson/src/main/java/org/redisson/RedissonSetCache.java b/redisson/src/main/java/org/redisson/RedissonSetCache.java index 40c611fd6..c08ba856c 100644 --- a/redisson/src/main/java/org/redisson/RedissonSetCache.java +++ b/redisson/src/main/java/org/redisson/RedissonSetCache.java @@ -114,7 +114,8 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< @Override public RFuture containsAsync(Object o) { - return commandExecutor.evalReadAsync(getName(o), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(o); + return commandExecutor.evalReadAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local expireDateScore = redis.call('zscore', KEYS[1], ARGV[2]); " + "if expireDateScore ~= false then " + "if tonumber(expireDateScore) <= tonumber(ARGV[1]) then " + @@ -125,7 +126,7 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< "else " + "return 0;" + "end; ", - Arrays.asList(getName(o)), System.currentTimeMillis(), encode(o)); + Arrays.asList(name), System.currentTimeMillis(), encode(o)); } @Override @@ -243,14 +244,15 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< ByteBuf objectState = encode(value); long timeoutDate = System.currentTimeMillis() + unit.toMillis(ttl); - return commandExecutor.evalWriteAsync(getName(value), codec, RedisCommands.EVAL_BOOLEAN, + String name = getName(value); + return commandExecutor.evalWriteAsync(name, codec, RedisCommands.EVAL_BOOLEAN, "local expireDateScore = redis.call('zscore', KEYS[1], ARGV[3]); " + "redis.call('zadd', KEYS[1], ARGV[2], ARGV[3]); " + "if expireDateScore ~= false and tonumber(expireDateScore) > tonumber(ARGV[1]) then " + "return 0;" + "end; " + "return 1; ", - Arrays.asList(getName(value)), System.currentTimeMillis(), timeoutDate, objectState); + Arrays.asList(name), System.currentTimeMillis(), timeoutDate, objectState); } @Override @@ -260,7 +262,8 @@ public class RedissonSetCache extends RedissonExpirable implements RSetCache< @Override public RFuture removeAsync(Object o) { - return commandExecutor.writeAsync(getName(o), codec, RedisCommands.ZREM, getName(o), encode(o)); + String name = getName(o); + return commandExecutor.writeAsync(name, codec, RedisCommands.ZREM, name, encode(o)); } @Override