php で Redis を使用する際のメモリ不足の解決策: 1. 設定ファイルまたはコマンドを通じて Redis の最大メモリ サイズを 100M に設定します; 2. 現在のメモリ削除ポリシーを取得します; 3. 「config set maxmemory」を通じて-policy allkeys- lru」コマンドを使用して、排除戦略を変更します。
本教程操作環境:windows7系统、PHP8.1版、Dell G3 電気。私たちは、Redis を使用するときに、Redis が使用できる最大の内部メモリを構成できます。 conf 構成ファイルに以下の構成ファイルを追加します。//Redis の最大占有範囲内保存サイズは 100M maxmemory 100mb
#Redis が実行をサポートするときは、コマンド修正によって保存されます大
は、Redis の最大占有内部メモリ サイズを設定することができますが、内部ストレージが完了すると、Redis の場所にデータが追加されます。このような状況を処理するために Redis 上にセキュリティ ポリシーが定義されています:
noeviction(默认ポリシー): 書き込み要求に対してサービスを提供せず、直接返します (DEL 要求と部分特殊请求謝)allkeys-lru
:すべてのキーの中の随机淘汰データ
volatile-random:期間中に設定されたキーの中の随機淘汰
volatile-ttl:期間中に設定されたキー中、キーの経過期間に基づいて淘汰が実行され、より早い経過期間のより優先的な淘汰
、 volatile-ttlこの 3 つのポリシー略時、キーがない場合は淘汰される可能性があり、noeviction一样は错误 どのように取得および設定内に存在する淘汰戦略略 获取当前内存淘汰戦略略:127.0.0.1:6379> config get maxmemory-policy
通过構成文件设置淘汰策略(修改redis.conf文件):maxmemory-policy allkeys-lru通过コマンド修改淘汰策略:127.0.0.1:6379> config set maxmemory-policy allkeys-lruLRU 計算法
上で Redis を使用できることを確認しました最大内存使用完了、つまり LRU 算法を使用して内存淘汰を実行できます、那么何ですか LRU 算法呢?
LRU (Least Recent Used) は、最も最近使用されていないキャッシュ置換アルゴリズムです。メモリをキャッシュとして使用する場合、通常、キャッシュのサイズは固定です。キャッシュがいっぱいでキャッシュにデータを追加し続ける場合は、古いデータを削除し、新しいデータを保存するためにメモリ領域を解放する必要があります。このとき、LRUアルゴリズムを使用することができる。中心的な考え方は、データが最近使用されていない場合、将来使用される可能性は非常に小さいため、そのデータを削除できるということです。
Redis は、近似 LRU アルゴリズムを使用します。従来の LRU アルゴリズムはまったく同じではありません。近似 LRU アルゴリズムは、ランダム サンプリングを通じてデータを削除し、毎回 5 つの (デフォルト) キーをランダムに選択し、最も最近使用されていないキーを削除します。
サンプルの数は、maxmemory-samples パラメーターを使用して変更できます。 例: maxmemory-samples 10 maxmenory-samples の構成が大きくなるほど、除外結果は厳密な LRU アルゴリズムに近づきます
近似を達成するために、Redis LRU アルゴリズムは、キーが最後にアクセスされた時刻を保存するために、各キーに追加の 24 ビット フィールドを追加します。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHP が Redis を使用していてメモリが不足している場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。