使用Redis作为缓存服务缓存一些不重要的数据,存在需要更新值而不重置或覆盖过期时间的情况,有什么好的办法解决这个问题吗? 我搜索了一下,找到了以下2个解决方案
- 使用setrange命令,由于值有点复杂,所以在这种情况下不太好。
- 获取ttl时间,然后将其设置为更新值时的过期时间。这似乎有点多余。
有什么好办法可以解决这个问题吗?
最佳答案
您不需要做这两件事中的任何一件。您只需在设置值时使用 KEEPTTL
标志即可。
像这样:
> set my_key this_is_my_value EX 60
这将为 key 设置一个具有 60 秒过期时间的值。
然后,当您更改值并且不想更改 key 的过期时间时,只需执行以下操作:
> set my_key this_is_my_new_value KEEPTTL
有关 REDIS docs 的更多信息.
关于Redis:如何更新 key 但不更改其过期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53169840/