我可以在Redis中本地使用新列表覆盖列表值吗?

时间:2018-10-17 17:13:35

标签: redis

我想在Redis中使用list data type,但我想简单地使用值覆盖/设置列表,而不是以推/弹出方式与其交互。

对于我的业务案例,我需要列表的可查询性质,但需要设置/覆盖整个列表。

使用本地Redis命令可以做到这一点吗?

(不是线程安全的,但是我可以删除密钥,然后使用LPUSH)。如果需要,也许可以将其包装在Lua脚本中。

1 个答案:

答案 0 :(得分:1)

我认为不可能。一个安全而又不错的解决方案的最佳选择是使用Lua脚本或事务,以确保它作为原子操作执行。一种可能的选择是:

MULTI
DEL my_list
RPUSH my_list "A" "B" "C"
EXEC

如果您使用密钥的到期时间,则在删除密钥之前,您可以使用TTL my_list读取剩余的到期时间。