技術共有

NoSQL REDIS の構成と最適化

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Redis の概要

Redis (リモート ディクショナリ サーバー) は、C 言語で書かれたオープン ソースの NoSQL データベースであり、キーと値のストレージ形式を使用してメモリに基づいて実行され、永続性をサポートします。 Redis は、その高性能、豊富なデータ型のサポート、およびアトミックな操作により、キャッシュ、リアルタイム分析システム、ランキング、その他のシナリオで広く使用されています。
Redis サーバー プログラムはシングル プロセス モデルです。つまり、1 台のサーバー上で複数の Redis プロセスを同時に起動できます。Redis の実際の処理速度は、メイン プロセスの実行効率に完全に依存します。サーバー上で Redis プロセスが 1 つだけ実行されている場合、複数のクライアントが同時にアクセスすると、サーバーの処理能力はある程度低下しますが、同じサーバー上で複数の Redis プロセスが開かれている場合、Redis は同時処理能力を向上させます。同時に、サーバーの CPU に大きな負荷がかかります。つまり、実際の運用環境では、実際のニーズに基づいて開始する Redis プロセスの数を決定する必要があります。高い同時実行性に対するより高い要件がある場合は、同じサーバー上で複数のプロセスを開始することを検討してください。 CPU リソースが不足している場合は、単一プロセスを使用できます。

2. Linux への Redis のインストール

Linux に Redis をインストールするには主に次の方法があります。

1. パッケージマネージャーを使用してインストールする

ほとんどの Linux ディストリビューションでは、パッケージ マネージャーを使用して Redis を直接インストールできます。たとえば、Ubuntu または Debian では、次のように使用できます。apt-get注文:

bash复制代码

sudo apt-get update
sudo apt-get install redis-server

CentOS または Red Hat では、次を使用します。yum注文:

bash复制代码

sudo yum update
sudo yum install redis

2. ソースコードからコンパイルしてインストールする

もう 1 つのインストール方法は、Redis の公式 Web サイトからソース コードをダウンロードし、コンパイルしてインストールすることです。次のように進めます。

  1. コンパイルツールをインストールする

    まず、gcc などのコンパイル ツールをインストールする必要があります。CentOS または Red Hat では、次を使用できます。yumインストール:

    bash复制代码

    sudo yum install gcc-c++ make
  2. Redis ソースコードをダウンロードする

    Redis 公式 Web サイトから最新の圧縮パッケージ (redis-6.xxtar.gz など) をダウンロードします。

  3. コンパイルしてインストールする

    ダウンロードした圧縮パッケージを解凍し、解凍ディレクトリに入り、コンパイルおよびインストールのコマンドを実行します。

    bash复制代码

    tar zxvf redis-6.x.x.tar.gz
    cd redis-6.x.x
    make && make PREFIX=/usr/local/redis install
  4. Redis サービスを構成する

    Redis が提供するものを使用できますinstall_server.shRedis サービスをセットアップするスクリプト、または手動で構成します。

3. Redis の構成と最適化

1. 設定ファイル

Redis の構成ファイルは通常、redis.conf, このファイルを変更することで、Redis のさまざまなパラメーターを構成できます。

  • バインドアドレス : デフォルトでは、Redis はローカル インターフェイスからの接続のみを受け入れます。Redis が他のホストからの接続を受け入れるようにしたい場合は、次のように変更する必要があります。bindオプションを選択するか、行をコメントアウトします。
  • 保護モード : Redis はデフォルトで保護モードで実行され、127.0.0.1 からの接続のみを受け入れます。保護モードをオフにすると、リモート接続が可能になります。
  • パスワード認証: セキュリティを向上させるために、Redis のパスワードを設定できます。
  • 持続性 : Redis は、RDB と AOF という 2 つの永続化メカニズムをサポートしています。永続性は、構成ファイルでオプションを設定することで有効にできます。
  • 最大メモリ制限: Redis の最大メモリ使用量と、最大メモリに達したときの排除戦略を設定できます。

2. パフォーマンスの最適化

Redis のパフォーマンスの最適化には、主にメモリ割り当て制御、スワップネス設定、ネットワーク接続の最適化などが含まれます。

  • メモリ割り当て制御

    Linux オペレーティング システムの場合vm.overcommit_memoryパラメータはメモリ割り当て戦略を制御します。 Redis では、メモリが少ない状況でもフォーク操作を正常に実行できるように、これを 1 に設定することをお勧めします。

    bash复制代码

    echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
    sysctl vm.overcommit_memory=1
  • スワップネス設定

    swappiness パラメーターは、オペレーティング システムがスワップを使用する傾向を決定します。高い同時実行性と高いスループットを必要とするアプリケーションの場合は、ディスク IO がシステムのボトルネックになる可能性を減らすために、スワップネスを低い値に設定することをお勧めします。

    bash复制代码

    echo "vm.swappiness=10" >> /etc/sysctl.conf
    sysctl vm.swappiness=10
  • ネットワーク接続の最適化

    安定したネットワーク接続を確保し、ネットワーク遅延とパケット損失を軽減します。同時に、Redis の TCP パラメータを合理的に構成します。tcp-keepaliveなど、ネットワーク接続の安定性と信頼性を向上させます。

3. 監視とデバッグ

  • Redis ステータスの表示

    使えるredis-cliRedisサーバーに接続して実行するコマンドINFOメモリ使用量、永続ステータス、接続数などを含む、Redis の現在のステータスを表示するコマンド。

  • ログファイルを表示する

    Redis ログ ファイルは通常、次の場所にあります。/var/log/redis/redis-server.log, ログファイルを参照することで、エラー情報や実行状況を取得できます。