redis expired
知りたいこと
redis 上にある Expired のデータはいつ消されるのか
調査
[参考ページ1]
https://nekogata.hatenablog.com/entry/2013/03/18/113938
以下抜粋
Redis は expire で指定した時間が過ぎたデータを消すのにふたつの戦略を使ってる。
・ 値が取得されるときに消すよ値が取得されるときに、その値がすでに expire 過ぎてたら消す。
・ 値が取得されなくても消すよ
- まずランダムに100個のキーを選ぶ
- 選んだキーのデータが expire 過ぎてたら消す
- 25 個より多くの key が expired だったら「1」からもう一度繰り返す
[参考ページ2]
http://gaishimo.hatenablog.com/entry/20121216/p1
以下抜粋
Redisではタイムアウト時間を設定したキーは時間を超えると自動で削除され、タイムアウト時間を設定しないと永続的に保存される。
また、メモリの空き領域がなくなった場合、期限のあるものから削除されていく(デフォルトの設定の場合)。
注意すべき点は、期限が設定されていないキーは削除対象にならないということである。
調査した結果わかったこと
・ expire が設定されている場合
⇒ 参照される時に消える、参照されなくても裏で自動的に消してるらしい
・ expire が設定されていない場合
⇒ 消えないらしい
確認
・ expire が設定されている場合
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> keys *
(empty list or set)
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> setex mystr1 10 "abc"
OK
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> keys *
1) "mystr1"
10秒後
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> keys *
(empty list or set)
⇒ 参照されてなくても裏で自動的に消していた。
・ expire が設定されていない場合
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> set mystr1 "abc"
OK
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> keys *
1) "mystr1"
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379>
一時間後
sample-redis.bvrzo2.0001.apne1.cache.amazonaws.com:6379> keys *
1) "mystr1"
⇒ 裏で自動的に消してはいないと思われるが、消えていない。いつまで残るのかは不明。
※ 本当に消えないのかどうかを色々確認したが、判断できず。。
Author And Source
この問題について(redis expired), 我々は、より多くの情報をここで見つけました https://qiita.com/visualpaper/items/745ac0c00582b862e1b0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .