代码之家  ›  专栏  ›  技术社区  ›  Jonathan

redis将TTL设置为等幂键

  •  1
  • Jonathan  · 技术社区  · 6 年前

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

    如果TTL不存在于某个键上,redis中是否存在一个设置TTL的等幂方法?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Itamar Haber    6 年前

    一个Lua脚本将是最有效的方法-见 EVAL 's documentation 有关如何编写此类脚本的详细信息,请参阅 SCRIPT LOAD EVALSHA 为了运行它们。

    类似下面的例子应该可以解决您的问题:

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