我尝试使用管道来处理不断添加到redis数据库中的数十万个密钥。
如果TTL不存在于某个键上,redis中是否存在一个设置TTL的等幂方法?
一个Lua脚本将是最有效的方法-见 EVAL 's documentation 有关如何编写此类脚本的详细信息,请参阅 SCRIPT LOAD 和 EVALSHA 为了运行它们。
EVAL
SCRIPT LOAD
EVALSHA
类似下面的例子应该可以解决您的问题:
if tonumber(redis.call('TTL', KEYS[1])) < 1 then redis.call('EXPIRE', KEYS[1], ARGV[1]) end