脚本逻辑:
- 从队列1弹出元素
- 如果存在值则推入队列2
- 否则返回null
RScript script = redissonClient.getScript();
final String scriptText = """
local value = redis.call('lpop', KEYS[1]);
if value then
redis.call('rpush', KEYS[2], value);
return value;
end
return nil;
""";
String value = script.eval(
RScript.Mode.READ_WRITE, // 脚本包含写入操作
scriptText,
RScript.ReturnType.VALUE,
List.of(REDIS_KEY_QUEUE1, REDIS_KEY_QUEUE2) // 对应脚本中的KEYS数组的元素
);