Redis メモリ削除メカニズムの概要

リリース: 2020-05-10 08:57:11
転載
2528 人が閲覧しました

Redis メモリ削除メカニズムの概要

Redis のメモリ削除とは、ユーザーが保存した一部のキーが Redis によってインスタンスからアクティブに削除され、読み取りミスが発生する可能性があることを意味します。では、なぜ Redis にはこの機能があるのでしょうか?これは、私たちが探求する必要がある本来の設計意図です。

Redis の 2 つの最も一般的なアプリケーション シナリオは、キャッシュと永続ストレージです。最初に明確にする必要があるのは、どのシナリオにメモリ削減戦略がより適しているかということです。永続ストレージまたはキャッシュですか?

メモリ削除メカニズムの本来の目的は、メモリの使用効率を高める代わりに、メモリをより有効に活用し、特定のキャッシュ ミスを使用することです。

Redis ユーザーとして、Redis が提供するこの機能を使用するにはどうすればよいですか?以下の設定を見てください

# maxmemory <bytes>
ログイン後にコピー

redis.confのmaxmemory値を設定することでメモリ削減機能を有効にすることができます この値の意味は、メモリのプロセスを理解することで理解できます削除:

1. クライアントは、追加のメモリを適用する必要があるコマンド (set など) を開始しました。

2. Redis はメモリ使用量をチェックします。使用されているメモリが maxmemory より大きい場合、一定量のメモリと引き換えに、ユーザーが設定したさまざまな削除戦略に従ってメモリ (キー) の削除を開始します。 。

3. 上記で問題がなければ、このコマンドは正常に実行されます。

maxmemory が 0 の場合、Redis のメモリ使用量に制限がないことを意味します。

Redis は、ユーザーが選択できる次の排除戦略を提供します。デフォルトの戦略は noeviction 戦略です:

  • noeviction: メモリ使用量がしきい値に達すると、すべての原因が発生します。メモリを適用するコマンドはエラーを報告します。

  • allkeys-lru: 主キー空間で、最近使用されていないキーを最初に削除します。

  • volatile-lru: 有効期限が設定されたキー空間で、最近使用されていないキーを最初に削除します。

  • allkeys-random: 主キー空間内のキーをランダムに削除します。

  • volatile-random: 有効期限が設定されたキースペース内のキーをランダムに削除します。

  • volatile-ttl: 有効期限が設定されたキー空間では、有効期限が早いキーが最初に削除されます。

ここでは、主キー スペースと有効期限が設定されたキー スペースを追加します。たとえば、Redis にキーのバッチが保存されていると仮定すると、ストレージ用のハッシュ テーブルがあります。このキーのバッチとその値。このバッチ内の一部のキーに有効期限が設定されている場合、このキーのバッチは別のハッシュ テーブルにも保存されます。このハッシュ テーブルの値はキーの有効期限に対応します。 。 時間。有効期限が設定されたキースペースは、主キースペースのサブセットです。

Redis には大まかにいくつかの排除戦略が用意されていると思いますが、どのように選択すればよいでしょうか?消去戦略の選択は、次の構成で指定できます:

# maxmemory-policy noeviction
ログイン後にコピー

しかし、この値には何を入力する必要がありますか?この問題を解決するには、アプリケーションが Redis に保存されているデータセットへのアクセスをどのように要求するのか、また要求は何なのかを理解する必要があります。同時に、Redis は削除戦略を変更するためのランタイムもサポートしています。これにより、Redis インスタンスを再起動せずにメモリ削除戦略をリアルタイムで調整できます。

いくつかの戦略の適用可能なシナリオを見てみましょう:

  • allkeys-lru: アプリケーションのキャッシュへのアクセスがべき乗則分布に準拠しているかどうか (つまり、 、相対的なホット スポット データがある)、またはアプリケーションのキャッシュ アクセスの分布についてあまり知らない場合は、allkeys-lru 戦略を選択できます。

  • allkeys-random: アプリケーションがキャッシュ キーへのアクセス確率が等しい場合は、この戦略を使用できます。

  • volatile-ttl: この戦略により、どのキーがエビクションに適しているかを Redis に指示することができます。

さらに、volatile-lru 戦略と volatile-random 戦略は、Redis インスタンスをキャッシュと永続ストレージの両方に適用する場合に適していますが、次を使用することもできます。同じ効果を達成するには 2 つの Redis インスタンスを使用しますが、キーの有効期限を設定すると実際により多くのメモリが消費されることに注意してください。そのため、メモリをより効率的に使用するために allkeys-lru 戦略を使用することをお勧めします。

redis の詳細については、redis 入門チュートリアル 列に注目してください。

以上がRedis メモリ削除メカニズムの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!