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