是否有任何方法redis可以检查条件之前通过TTL键到期?



考虑我在redis中有一个非常大的数据记录(键值),其TTL是根据一些业务规则设置的(也存储在redis中),让我们说如果业务规则改变了,因为记录不应该在之前设置的时间过期,但应该根据新的时间过期。每次规则更新时,我不能简单地更改数百万条记录的生存时间。我怎样才能做到这一点呢?在redis中是否有一种方法,允许我们提供一个脚本,当它在满足TTL时删除记录时运行。

Redis支持LUA脚本。也许你应该检查一下。

https://redis.io/commands/eval/

EVAL:执行Lua脚本

EVALSHA:执行Lua脚本。缓存的

SCRIPT EXISTS:通过hash检查脚本缓存

SCRIPT FLUSH: Clear cache

SCRIPT KILL:终止正在运行的脚本

SCRIPT LOAD:加载指定的Lua脚本到脚本缓存中。

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1
key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"

相关内容

  • 没有找到相关文章

最新更新