Redis メモリは完全なソリューションです:
1、メモリを増やします;
2、メモリ削除戦略を使用します。
3、Redis クラスター。
2 番目と 3 番目の解決策に焦点を当てましょう:
2 番目の解決策:
redis 設定構成ファイルが maxmemory パラメータで制御できることはわかっています。利用可能な最大メモリ サイズ (バイト)。
それでは、必要なメモリが maxmemory を超えた場合はどうすればよいでしょうか?
このとき、構成ファイル内の maxmemory-policy が機能します。
デフォルト値は noeviction です。
以下に、使用可能なメモリが不十分な場合に Redis キーを削除するための除外ルールを示します。
#LRU アルゴリズム、最も最近使用されていないアルゴリズム、最も最近使用されていないアルゴリズム。つまり、最も最近使用されていないキーがデフォルトで削除されます。 しかし、注意しなければならないことが 1 つあります。 Redis は、すべてのキーのうち最も最近使用されていないキーを正確に削除するのではなく、ランダムに 3 つのキーを選択し、これら 3 つのキーのうち最も最近使用されていないキーを削除します。 次に、数値 3 を設定することもでき、対応する場所は構成ファイル内の maxmeory-samples です。3 番目の方法: Redis は単一のインスタンスのみをサポートします。メモリ 通常 10 ~ 20GB まで。 100 ~ 200 GB のメモリを備えたシステムの場合、クラスタリングを通じてサポートする必要があります。 Redis クラスターには、クライアント シャーディング、プロキシ シャーディング、RedisCluster の 3 つの方法があります。クライアント シャーディング
ビジネス コードによるルーティングの実装 利点: シャーディング アルゴリズムを自分で制御でき、プロキシよりもパフォーマンスが優れています。欠点: 維持コストが高く、拡張/縮小などの運用保守作業は独自の研究開発が必要です
エージェント シャーディング
エージェントはビジネス プログラムからデータ リクエストを受信し、ルーティング ルールに従ってこれらのリクエストを正しい Redis インスタンスに分散し、ビジネス プログラムに返します。 Twemproxy や Codis などのミドルウェアを使用して実装されます。 メリット: 運用保守が容易、Redis インスタンスへの接続方法を気にする必要がないデメリット: パフォーマンスを消費する(約20%)、スムーズに拡張できない/縮小し、データを移行するためにスクリプトを実行する必要があるため、不便です (Codis は自動リバランスを実現するために Twemproxy に基づいてプリシャーディングを最適化および実装します)。Redis クラスター
利点: 公式クラスター ソリューション、セントラル ノードなし、クライアントへの直接接続、優れたパフォーマンス欠点: ソリューションはあまりにも重い、スムーズに拡張/縮小できない、対応するスクリプトを実行する必要がある、不便、新しすぎる、対応する成熟したソリューションがないケース Redis の詳細については、redis 入門チュートリアル##を参照してください。 # カラム。
以上がRedis メモリがいっぱいになった場合の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。