0
私はRedis 2.8.19を持っています。Redis 2.8では、値を変更してTTLを維持する方法
以下のシーケンスでは、mykey
の値を変更するときに元の有効期限60秒がリセットされないようにしたいと考えています。
127.0.0.1:6379[10]> SET mykey A EX 60 NX
OK
127.0.0.1:6379[10]> TTL mykey
(integer) 53
127.0.0.1:6379[10]> GETSET mykey B
"A"
127.0.0.1:6379[10]> TTL mykey
(integer) -1
127.0.0.1:6379[10]> GET mykey
"B"
GETSET
した後、私が持っているでしょうがTTL mykey
ではなく-1
約40
秒を返すことを期待しています。
タイムアウトを失うこともリセットすることなく値を変更することは可能ですか?
ありがとうございました。
はあなたに感謝します。私はjedisを使っているので、私はttl = jedis.ttl(...)をやった。 jedis.set(key、value、XX、EX、ttl)私はほとんど原子だと言うだろう:)しかし、それはTTLを変更しない場合は原子のUPDATEキー値のコマンドは歓迎される:)) – Costin
それを行う/ジェダイは原子的ではありません。上記のスクリプトの実行は次のとおりです。 RedisでRedis Luaを実行するには、ここで素晴らしいヘルパーがあります:https://github.com/RedisLabs/luascript –