Redisのexpire設定について
Redisのキーに、有効期限の設定方法。
> set test 12345
OK
> EXPIRE test 300
(integer) 1
> ttl test
(integer) 294
Redisの期限切れキーについて
キーの期限切れ削除方法は、受動的方法と能動的方法の2つ。
- キーがアクセスされたタイミングで削除
キーがアクセスされたタイミングで、タイムアウトを確認する。 - 自動削除
2度とアクセスされない期限切れキーは、永遠に残ってしまうので以下の手順で削除
Redisは、以下の操作を1秒間に10回行う。- キーセットから20個のキーをランダムに取得
- 期限切れキーを削除
- 期限切れキーが25%以上ある場合は、1から繰り返す
期限切れのキーが25%未満になるまで繰り返されます。
気づき
Redisで、keys *
を実行した時にアイテムカウントが一気に減少したのは、全部のキーにアクセスして残りの25%のものが削除されたからなのか。
Redisのメモリを使い果たしたときの動作
maxmemory-policyで設定できる。
allkeys-lru : 全部のキーで、参照されていない時間が長いものから削除
noeviction : エラー返却
etc...