Redis-通过单个命令减少TTL

Redis-通过单个命令减少TTL,redis,ttl,Redis,Ttl,假设我有一个redis记录,TTL=1小时 然后发生一些事件,我想将此项目的TTL重置为min(当前TTL,5min)。因此,它会将TTL减少到5分钟。如果它还没有降低 基本用例是,缓存的失效可能过于频繁,“旧”缓存几乎和新缓存一样好,如果它不早于5分钟。从第一次改变开始 我知道我可以在一个命令中获取TTL并用第二个命令更新它,但出于各种原因,我更愿意使用单个命令进行设置。有办法吗 编辑:将有许多关键点,我需要减少一个命令。因此,我希望避免redis和客户机库之间对每条记录的数据往返。没有单个命

假设我有一个redis记录,TTL=1小时

然后发生一些事件,我想将此项目的TTL重置为min(当前TTL,5min)。因此,它会将TTL减少到5分钟。如果它还没有降低

基本用例是,缓存的失效可能过于频繁,“旧”缓存几乎和新缓存一样好,如果它不早于5分钟。从第一次改变开始

我知道我可以在一个命令中获取TTL并用第二个命令更新它,但出于各种原因,我更愿意使用单个命令进行设置。有办法吗


编辑:将有许多关键点,我需要减少一个命令。因此,我希望避免redis和客户机库之间对每条记录的数据往返。

没有单个命令可以做到这一点,但您可以将逻辑封装在服务器端Lua脚本中,并使用单个命令调用它。有关详细信息,请参阅该命令。

没有单个命令可以执行此操作,但您可以将逻辑封装在服务器端Lua脚本中,并使用单个命令调用该脚本。有关更多信息,请参阅命令。

我甚至不知道Lua脚本,将检查它,谢谢。我甚至不知道Lua脚本,将检查它,谢谢。