gpt4 book ai didi

固定数量客户端的Redis事务

转载 作者:IT王子 更新时间:2023-10-29 06:11:06 25 4
gpt4 key购买 nike

我已经阅读了多篇关于 Redis 事务的文章。我有一些包含消息的列表。我使用 redis 为这些消息生成自动递增 ID。这是我正在尝试做的事情:

  1. 读取计数器值,然后 INCR。
  2. 将递增的计数器值放入消息的Id字段,然后序列化消息。
  3. 将序列化的消息推送到列表中。

因此计数器始终保存相应列表中最后一条消息的 ID。我想锁定计数器键,以便其他请求无法读取和 INCR 计数器并将另一条消息推送到与最后一个 ID 冲突的列表。

由于我想拥有有限数量的redis客户端,WATCH MULTI EXCEC无法实现,因为是同一个客户端在做交易。据我所知,WATCH MULTI EXCEC 适用于拥有多个 Redis 客户端的情况。

我想知道解决这个问题的正确方法是什么。我应该使用 LUA 脚本并让它序列化消息吗?

最佳答案

Lua 绝对是创建可读写数据的原子逻辑单元的最佳选择。

但是,对于您的情况,我不认为真正需要原子性。除非严格要求ID之间不能有空隙,否则直接调用INCRBY即可。获取新 ID,然后将其用于序列化消息。其他消息将不会获得相同的 ID,唯一的“风险”是在使用该 ID 序列化和存储消息之前让您的工作人员死亡(因此造成间隙)。

关于固定数量客户端的Redis事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41550668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com