目次
Redis が占有するメモリ サイズ
#1. 設定ファイルによる設定#Redis インストール ディレクトリの redis.conf 設定ファイルに次の設定を追加してメモリ サイズを設定します
maxmemory-policy allkeys-lruコマンドを使用して削除ポリシーを変更します:
近似を達成するために、Redis LRU アルゴリズムは、キーが最後にアクセスされた時刻を保存するために、各キーに追加の 24 ビット フィールドを追加します。 PHP 開発環境を構築するためのツールは何ですか?
ホームページ データベース Redis PHPでRedisを使用する際のメモリ不足の問題を解決する方法

PHPでRedisを使用する際のメモリ不足の問題を解決する方法

Jun 01, 2023 pm 04:37 PM
php redis

php で Redis を使用する場合のメモリ不足の解決策: 1. 構成ファイルまたはコマンドを通じて Redis の最大メモリ サイズを 100M に設定します; 2. 現在のメモリ削減戦略を取得します; 3 「config Set maxmemory-policy allkeys-lru」コマンドを使用して削除ポリシーを変更できます。

Redis が占有するメモリ サイズ

Redis はメモリベースのキーと値のデータベースであることがわかっています。システムのメモリ サイズには制限があるため、 Redis を使用しています Redis が使用できる最大メモリ サイズを構成できます。

#1. 設定ファイルによる設定#Redis インストール ディレクトリの redis.conf 設定ファイルに次の設定を追加してメモリ サイズを設定します

/ /Redis の最大メモリ サイズを 100M に設定します maxmemory 100mb

Redis 構成ファイルは、必ずしもインストール ディレクトリにある redis.conf ファイルを使用する必要はありません。Redis サービスを開始するときに、パラメーターを渡すことができます。

2. コマンドによる変更

Redis は実行時のコマンドによるメモリ サイズの動的変更をサポートします

//Set Redis が占有する最大メモリ サイズを 100M にします 127.0.0.1:6379> config set maxmemory 100mb //Redis が使用できる最大メモリ サイズを取得します 127.0.0.1:6379> config get maxmemory

If 最大メモリ サイズが設定されていないか、最大メモリ サイズが 0 に設定されている場合、64 ビット オペレーティング システムではメモリ サイズに制限はなく、32 ビット オペレーティング システムでは最大 3GB のメモリを使用できます

Redis メモリの削減

Redis の最大占有量をメモリ サイズに設定できるようになったので、設定されたメモリは使い果たされます。では、メモリが足りなくなったときに、Redis にデータを追加し続けると、使用できるメモリがなくなってしまうことはないでしょうか?実際、Redis は、この状況に対処するためのいくつかの戦略を定義しています。

noeviction (デフォルトの戦略)

: 書き込みリクエストに対するサービスを提供しなくなり、直接エラーを返します (DEL リクエストと一部の特別なリクエストを除く) allkeys -lru: LRU アルゴリズムを使用してすべてのキーから削除します volatile-lru: LRU アルゴリズムを使用して有効期限が設定されたキーから削除します allkeys-random: ランダムからすべてのキーのデータを削除します volatile-random: 有効期限が設定されたキーからデータをランダムに削除します volatile-ttl: キーの有効期限に応じて、有効期限が設定されたキーで戦略を作成するときに、キーを削除できない場合は、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-lru

#LRU アルゴリズム

#LRU とは何ですか?

#上記の通り、Redis で使用可能な最大メモリが使い果たされた場合、LRU アルゴリズムを使用してメモリを削除できます。

LRU (Least Recent Used)

は、最も最近使用されていないキャッシュ置換アルゴリズムです。メモリをキャッシュとして使用する場合、通常、キャッシュのサイズは固定です。キャッシュがいっぱいになり、キャッシュへのデータの追加を続ける場合は、古いデータの一部を削除し、新しいデータを保存するためにメモリ領域を解放する必要があります。このとき、LRUアルゴリズムを使用することができる。中心的な考え方は、あるデータが最近使用されていない場合、将来使用される可能性は非常に小さいため、そのデータを削除できるということです。

Redis での LRU の実装

近似 LRU アルゴリズム

Redis は、近似 LRU アルゴリズムを使用します。これは、従来の LRU アルゴリズムはまったく同じではありません。近似 LRU アルゴリズムは、ランダム サンプリングを通じてデータを削除し、毎回 5 つの (デフォルト) キーをランダムに選択し、最も最近使用されていないキーを削除します。 サンプルの数は、maxmemory-samples パラメーターを使用して変更できます。 例: maxmemory-samples 10 maxmenory-samples の構成が大きくなるほど、除外結果は厳密な LRU アルゴリズムに近づきます

近似を達成するために、Redis LRU アルゴリズムは、キーが最後にアクセスされた時刻を保存するために、各キーに追加の 24 ビット フィールドを追加します。 PHP 開発環境を構築するためのツールは何ですか?

1. phpStudy は、初心者が始めるのに最も一般的に使用される開発環境です。

2. WampServer、WampServer も phpStudy と同じくらい操作が簡単で、初心者にとってよりフレンドリーです。

3. XAMPP、XAMPP (Apache MySQL PHP PERL) は強力な統合ウェブサイト構築ソフトウェア パッケージです;

4. MAMP、MAMP は、MAMP と MAMP Pro for Mac の 2 つのタイプに分かれています。

5. PagodaPanel、PagodaPanelは、WindowsおよびLinuxシステムをサポートするサーバー管理ソフトウェアです。

6. UPUPW、UPUPW は現在、Windows プラットフォームで最も特徴的な Web サーバー PHP スイートです。

以上がPHPでRedisを使用する際のメモリ不足の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

PHPの現在のステータス:Web開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

PHP:多くのウェブサイトの基礎 PHP:多くのウェブサイトの基礎 Apr 13, 2025 am 12:07 AM

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

See all articles