redisson 使用脚本实现将一个队列的元素弹出并推入另一个队列的原子操作

慈云数据 7个月前 (05-09) 技术支持 34 0

脚本逻辑:

redisson 使用脚本实现将一个队列的元素弹出并推入另一个队列的原子操作
(图片来源网络,侵删)
  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数组的元素
);
redisson 使用脚本实现将一个队列的元素弹出并推入另一个队列的原子操作
(图片来源网络,侵删)
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon