ホームページ >データベース >Redis >Redis キャッシュ戦略とは何ですか?

Redis キャッシュ戦略とは何ですか?

(*-*)浩
(*-*)浩オリジナル
2019-06-18 13:44:374074ブラウズ

Redis をキャッシュとして使用する場合、メモリ領域がいっぱいになると、古いデータが自動的に削除されます。 Memcached はデフォルトでこのように動作し、ほとんどの開発者はこれに精通しています。 LRU は、Redis でサポートされている唯一のリサイクル アルゴリズムです。

Redis キャッシュ戦略とは何ですか?

エビクション戦略 (推奨される学習: Redis ビデオ チュートリアル )

最大メモリ制限 (maxmemory) に達すると、Redis は maxmemory-policy で構成されたポリシーに基づいて特定の動作を決定します。

現在のバージョン、Redis 3.0 でサポートされている戦略は次のとおりです:

noeviction: 戦略を削除しないでください。最大メモリ制限に達した場合、より多くのメモリが必要な場合は、直接エラー メッセージを返します。ほとんどの書き込みコマンドでは、より多くのメモリが占​​有されます (DEL などのまれな例外はあります)。

allkeys-lru: すべてのキーに共通です。最初に最も最近使用されていない (LRU) キーを削除します。

volatile-lru: 有効期限が設定されている部分に限定されます。最初に最も最近使用されていない (LRU) キーを削除します。

allkeys-random: すべてのキーに共通; いくつかのキーをランダムに削除します。

volatile-random: 有効期限が設定されている部分のみ、キーの一部をランダムに削除します。

volatile-ttl: 有効期限が設定されている部分に限定され、残り時間 (有効期間、TTL) が短いキーが最初に削除されます。

期限切れキーが設定されておらず、前提条件が満たされていない場合、volatile-lru、volatile-random、および volatile-ttl 戦略の動作は、基本的に noeviction (削除なし) と同じになります。

システムの特性に基づいて、適切なエビクション戦略を選択する必要があります。もちろん、運用中にコマンドを使用してエビクション ポリシーを動的に設定したり、チューニングのために INFO コマンドを使用してキャッシュ ミスとヒットを監視したりすることもできます。

一般的に:

ホット データとコールド データに分割されている場合は、allkeys-lru 戦略を使用することをお勧めします。つまり、一部のキーは頻繁に読み書きされるため、特定のビジネス特性がよくわからない場合は、allkeys-lru が適しています。

ループ内のすべてのキーの読み取りと書き込みが必要な場合、または各キーのアクセス頻度が類似している場合は、allkeys-random 戦略を使用できます。つまり、すべての要素の読み取りと書き込みの確率は次のとおりです。ほぼ同じ。

Redis で TTL に基づいて削除する必要があるキーをフィルタリングする場合は、volatile-ttl 戦略を使用してください。

volatile-lru および volatile-random 戦略の主なアプリケーション シナリオは次のとおりです: キャッシュと永続キーの両方を持つインスタンス。一般に、このようなシナリオでは、2 つの別個の Redis インスタンスを使用する必要があります。

期限切れを設定すると追加のメモリが消費されるため、allkeys-lru 戦略を使用すると、有効期限を設定する必要がなくなるため、メモリをより効率的に使用できることに注意してください。

Redis 関連の技術記事の詳細については、「Redis データベース チュートリアルの使用方法の概要」 列にアクセスして学習してください。

以上がRedis キャッシュ戦略とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。