【发布时间】:2018-10-18 04:20:40
【问题描述】:
我想在 Redis 中使用 list data type,但我想简单地用一个值覆盖/设置列表,而不是以推送/弹出方式与之交互。
对于我的业务案例,我需要列表的可查询性质,但需要设置/覆盖整个列表。
这可以用原生 Redis 命令实现吗?
(不是线程安全的,但我可以删除密钥然后使用LPUSH)。如果需要,也许可以将其包装在 Lua 脚本中。
【问题讨论】:
标签: redis
我想在 Redis 中使用 list data type,但我想简单地用一个值覆盖/设置列表,而不是以推送/弹出方式与之交互。
对于我的业务案例,我需要列表的可查询性质,但需要设置/覆盖整个列表。
这可以用原生 Redis 命令实现吗?
(不是线程安全的,但我可以删除密钥然后使用LPUSH)。如果需要,也许可以将其包装在 Lua 脚本中。
【问题讨论】:
标签: redis
我认为这是不可能的。获得安全且出色的解决方案的最佳选择是使用 Lua 脚本或事务,以确保它作为原子操作执行。一种可能的选择是:
MULTI
DEL my_list
RPUSH my_list "A" "B" "C"
EXEC
如果您对密钥使用过期时间,则在删除它之前,您可以使用TTL my_list 读取剩余的过期时间。
【讨论】: