个人技术分享

脚本逻辑:

  1. 从队列1弹出元素
  2. 如果存在值则推入队列2
  3. 否则返回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数组的元素
);