Redisキャッシュの失効戦略設定方法
Redisでは、キャッシュ失效時間を設定したり、Redisの有効期限ポリシーを利用することで、キャッシュ失效ポリシーを設定できます。
- 「EXPIRE」コマンドを使用してキーの有効期限を設定可能。例えば、以下コマンドでキー「mykey」の有効期限を60秒に設定
- mykey 60秒で失効
- キーが期限切れになると、Redisは自動的にそのキーを削除します。
- Redisの有効期限ポリシーを使用する:
- クライアントから既に有効期限切れのキーがアクセスされた場合、Redisはそのキーを即座に削除します。
- 一定時間ごとにいくつかの有効期限切れキーを削除する定期削除がRedisにより実行されます。設定項目hzを使って定期削除の頻度を調整することが可能です。デフォルトでは、hzの値は10に設定されており、これは削除操作が1秒間に10回実行されることを意味します。
- Redisの設定ファイルredis.confでは、以下の設定を調整することで、期限切れのポリシーを設定できます。
- natively in Japanese: natively in Japanese, natively in Japanese
- 定期削除処理のたびに、確認するキーの最大数を設定します。
- maxmemory-eviction:定期削除操作を実行する際の、最大削除数の設定値です。
- たとえば、この設定を使用して失効ポリシーをvolatile-lruに設定し、定期の削除操作のたびに確認するキーの数を100に設定し、最大100個の失効したキーを削除できます。
- maxmemory-policy volatile-lru maxmemory-samples 100 maxmemory-eviction 100
Redisの有効期限ポリシーは、遅延削除と定期削除の併用で行われること、つまりキャッシュの有効期限を設定するのは単なる補助手段であり、実際の削除操作はRedis自身の有効期限ポリシーによって実行されることに注意してください。