我正在尝试使用管道处理数十万个不断添加到redis数据库的密钥。
如果密钥上不存在ttl,Redis中是否存在幂等方法设置ttl?
答案 0 :(得分:2)
Lua脚本是最有效的方法 - 有关如何撰写此类脚本的详细信息,请参阅EVAL
's documentation,并参阅SCRIPT LOAD
和EVALSHA
来运行它们。
类似以下示例的内容应该会解决您的问题:
if tonumber(redis.call('TTL', KEYS[1])) < 1 then
redis.call('EXPIRE', KEYS[1], ARGV[1])
end