使用 redis-cli
设置 mykey
, 并且设置其过期时间为 40s
, 然后, 我再重新设置 mykey
, 这时 mykey
的值会被重置, 我不明白的是为啥 过期时间也同时重置了?如果我仅仅想重置值, 不更改过期时间有没办法?
源码:
SET mykey "Hello"
EXPIRE mykey 40
EXISTS mykey
SET mykey "Hello"
EXISTS mykey
EXISTS mykey
大家讲道理2017-04-27 09:04:48
公式 Web サイトにアクセスして、期限切れの説明を読んでください:
次のように説明されています:
DEL、SET、GETSET を使用すると、キーに格納されている値が新しい値に置き換えられ、リスト構造にデータを追加するか、リスト構造のフィールドを変更すると、コマンドによってタイムアウトもクリアされます。 hset データのタイムアウトはクリアされません。set を通じて値を上書きしたい場合は、期限切れをリセットする必要があります。
リンクをクリックしてください
怪我咯2017-04-27 09:04:48
EXPIREAT と EXPIRE は、値を更新するときに有効期限をリセットします。
設定前にttlでキーの有効期限を取得します
設定後、ttlの値を有効期限に設定します
ただし、この方法ではエラーが発生する可能性があります。他の人がより良い方法を持っているかどうかはわかりません。