この記事では、Redis に関する知識を紹介します。主な内容は、Redis の有効期限切れのキーが解放されない理由を分析することです。困っている友人の役に立てば幸いです。見てみましょう!
背景:
1、redis バージョン 5.0;
2、32G redis クラウド サーバー、メモリは増加し続けており、メモリは次のように占有されています。期限切れのキーは解放されていません。メモリ使用量は次のとおりです。
最近の redis 操作: 2,000 万個の期限切れのないキーに、7 ~ 20 日間の有効期限がランダムに割り当てられました。
最適化プロセス:
1. Alibaba Cloud の「オフライン完全キー分析」を数日間観察します;
2. 期限切れのキーのメモリを検出しますまだ解放されておらず、2G から 5G に増加しています;
3. 期限切れのキー メモリが解放されない理由を分析します;
4. redis の hz パラメーターを 10 から 50 に調整します。 30 を実行しても変化は見つかりません;
5. Redis ソース コードを分析します。
6. 結論: Redis メモリが解放されない理由: 最近、2,000 万個のキーが期限切れに設定されているため、ガベージ コレクションのヒット率が 25% 未満になり、期限切れのキーは繰り返し循環されません。 (ソースコードファイル:expire.c、activeExpireCycle関数)。
hz 説明 [推奨学習: redis ビデオ チュートリアル ]
7. 最終処理方法: 操作は必要ありません。期限切れのキーの数が増加し、ヒット率が増加すると、メモリは最終的に解放されます。(処理を高速化したい場合は、"hz" パラメータをより大きな値に設定します)高速になりますが、より多くの CPU リソースを消費します。Alibaba Cloud のドキュメントを参照してください)。
以上がRedis の期限切れキーが解放されない理由を注意深く分析してみましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。