Redis 幂等地在键上设置 ttl

Redis set ttl on key idempotently

我正在尝试使用管道来处理不断添加到 redis 数据库中的数十万个密钥。

Redis有没有幂等的方法设置key不存在的ttl?

Lua 脚本将是最有效的方法 - 请参阅 EVAL's documentation for more details on how to compose such scripts, and refer to SCRIPT LOAD and EVALSHA 了解 运行 它们。

类似于以下示例的内容应该可以解决您的问题:

if tonumber(redis.call('TTL', KEYS[1])) < 1 then
  redis.call('EXPIRE', KEYS[1], ARGV[1])
end