1はじめに
コンピュータのメモリは限られています。コンピュータが大きいほど高価になります。Redisの高い同時実行性と高いパフォーマンスはすべてメモリに基づいています。ハードディスクを使用すると、パフォーマンスが低下します。高速なデータ応答を確保するために、キャッシュ内のデータをクリアする必要があります。
2期限切れのキー処理
期限切れのキーキャッシュは期限切れになりますが、サーバーのメモリは引き続き使用されます。これは、redisに基づく2つの削除戦略が原因です。
1(アクティブ)定期的に削除
- 期限切れのキーを定期的かつランダムにチェックし、期限切れの場合はクリーンアップして削除します。(1秒あたりのチェック数はredis.confのhzで構成されます)
2(パッシブ)レイジー削除
- クライアントが期限切れのキーを要求すると、redisはキーが期限切れかどうかを確認し、期限切れの場合は削除してからnilを返します。この戦略は比較的友好的であり、それほど多くの損失を引き起こすことはありませんが、メモリ使用量は比較的高くなります。
そのため、redisキーの有効期限が切れても、redisによってクリーンアップされない限り、メモリを占有します。
3メモリ除去メカニズム
メモリがいっぱいの場合は、ディスクを使用してデータを保存できます。この場合、当初の意図に反して、データの応答速度が大幅に低下し、redisのパフォーマンスに影響します。
したがって、メモリがいっぱいになると、redisはキャッシュ除去メカニズムを提供します。MEMORY MANAGEMENT
maxmemory
:メモリ使用率に達したら、キャッシュのクリアを開始します
* noeviction:旧缓存永不过期,新缓存设置不了,返回错误
* allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)
* allkeys-random:在所有的缓存中随机删除(不推荐)
* volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
* volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存
* volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的
4関連情報
- ブログ投稿は簡単ではありません、注意と賞賛に一生懸命働いたすべての人、ありがとう