Redis内のデータを削除する方法

silencement
リリース: 2019-06-06 15:00:43
オリジナル
5720 人が閲覧しました

Redis内のデータを削除する方法

Redis では一般的に使用される 3 つの削除戦略があります:

1. 受動的削除 (遅延削除): 読み取り/書き込みアイテムに期限切れ キーが見つかると、遅延削除戦略がトリガーされ、キーが直接削除されます;

2. アクティブな削除 (定期的な削除): Redis は定期的な検査を実行して、期限切れのキーをクリーンアップします;

3. メモリが maxmemory 構成に達すると、キーの削除操作がトリガーされます;

アクティブな削除

Redis では、通常の操作が行われます。 redis.c/serverCron によって実装されており、主に次の操作を実行します:

1. 時間、メモリ使用量、データベース使用量など、サーバーのさまざまな統計情報を更新します。

2. データベース内の期限切れのキーと値のペアをクリーンアップします。

3. 無理のあるデータベースのサイズを調整します。

4. 接続に失敗したクライアントを閉じてクリーンアップします。

5. AOF または RDB 永続化操作を実行してみます。

6. サーバーがマスター ノードの場合は、スレーブ ノードの定期的な同期を実行します。

クラスター モードを使用している場合は、クラスター上で定期的な同期と接続テストを実行します。

Redis は、serverCron が時々自動的に実行されるように、時間イベントとして実行します。また、serverCron は、Redis サーバーの実行中に定期的に実行する必要があるため、周期的な時間イベントです。サーバーがシャットダウンされるまで定期的に実行されます。

概要

Redis で毎日大量のキー (たとえば、数千万) が期限切れになる場合は、期限切れのキーのクリーンアップを検討する必要があります。キー:

Redis アクティブ クリーニングの頻度を増やします (hz パラメーターを増やすことにより)

期限切れのキーを手動でクリーンアップします。最も簡単な方法は、スキャン操作を実行することです。スキャン操作により、最初のパッシブ削除。スキャン操作を実行することを忘れないでください。カウントを追加します。

dbsize コマンドによって返されるキーの数には、期限切れのキーが含まれます。

randomkey コマンドによって返されるキーには、期限切れのキーは含まれません。

scan コマンドによって返されるキーには、期限切れのキーが含まれます。Key

info コマンドは # Keyspace

db6:keys=1034937352、expires=994731489 を返します。 ,avg_ttl=507838502

キーに対応するキーの数は dbsize と同じです

expires は有効期限が設定されたキーの数を指します

avg_ttl は平均有効期限を指します有効期限が設定されたキーの時刻 (単位: ミリ秒)

以上がRedis内のデータを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート