Redis Rの頭字語です エモートd 架空のサーバー。これはオープンソースで、メモリ内にあり、永続的なKey-Valueデータベース/ストアであり、データをKey-Valueペアとして保存し、メッセージブローカーとしても機能します。 Redisは、セットを含むさまざまなデータ構造をサポートしています 、リスト 、ハッシュ 、文字列 、 HyperLogLogs その他にもたくさんあります。
キーと値のペアとは何ですか?
キーと値のペアは、2つのリンクされたアイテムのセットまたはペアです。次のことを考慮してください:
車=メルセデス
この場合、車が鍵であり、メルセデスが価値です。 Redisデータベースでは、この情報は次の構文を使用して記述できます:
SET“ key1”“ value1”
この例は次のように翻訳されます:
SET「車」「メルセデス」
Redisを使用するメリット
- MySQLのようなリレーショナルデータベースとは異なり、Redisはデータをキーと値のペアとして格納するNoSQLデータベースです。これにより、リレーショナルデータベースに関連付けられたテーブル、列、行を作成する必要がなくなるため、シンプルで柔軟になります。 Redisへのデータのフィードはシンプルで簡単です。
- Redisの明らかな用途の1つは、キャッシングシステムとしての使用です。その一方で、書き込まれるデータの永続性も提供します。
- Redisのインメモリアーキテクチャにより、データの保存と取得が超高速になります。
- redisキャッシュシステムは非常に堅牢で、障害や中断に耐える能力があります。
- Redisにはマスタースレーブレプリケーション機能が付属しています。マスターノードに変更が加えられると、それらはスレーブノードに自動的に複製され、高可用性が確保されます。
- Redisには、最大512MBの大きなキーと値のペアを保存する機能があります。
- フットプリントが小さいため、RedisをRaspberry PiやArduinoなどのIoTデバイスにインストールして、IoTアプリをサポートできます。
- Redisは、Windows、Mac、Linuxにインストールできるクロスプラットフォームのデータベースおよびキャッシュシステムです。
Redisのユースケース
上記の利点により、Redisは次のように使用できます。
- リアルタイムの統計データの分析。
- CloudTrail、CloudWatch、AmazonEC2インスタンスなどのAWSサービスとの統合に使用されます。
- ウェブサイトをキャッシュするための優れたオプションになる可能性があります。
- Instagramなどのソーシャルメディアプラットフォームは、画像の保存にRedisを使用します
- Redisは、ハイパーログログ、ハッシュ、地理空間データなど、さまざまなデータタイプをサポートしています。
それでは、CentOS 8 /RHEL8にRedisをインストールする方法を見てみましょう
ステップ1:システムリポジトリを更新する
CentOS 8 / RHEL 8システムにログインし、次のコマンドを使用してシステムパッケージとリポジトリを更新します。
$ sudo dnf update -y
ステップ2:dnfを使用してRedisをインストールする
Redisバージョン5.0.xがCentOS8AppStreamリポジトリに含まれるようになり、インストールは簡単です。次のコマンドを実行するだけです:
$ sudo dnf install redis -y
インストールしたら、次のコマンドを実行して、インストールされているRedisのバージョンを確認できます。
[[email protected] ~]$ rpm -q redis redis-5.0.3-1.module_el8.0.0+6+ab019c03.x86_64 [[email protected] ~]$
出力から、Redisバージョン5.0.3がインストールされていることがわかります。バージョン、アーキテクチャ、ライセンス、簡単な説明など、Redisに関する詳細情報を取得するには、次のコマンドを実行します。
$ rpm -qi redis
Redisサービスを開始して有効にするには、次のsystemctlコマンドを実行します。
$ sudo systemctl start redis $ sudo systemctl enable redis
開始したら、実行してステータスを確認できます
$ sudo systemctl status redis
デフォルトでは、Redisはポート6379で実行されます。これは、netstatコマンドを実行して確認できます。
$ sudo netstat -pnltu | grep redis
ステップ3:リモートアクセス用にRedisを設定する
デフォルトのインストールでは、ローカルホストまたはRedisサーバーからの接続のみが許可され、外部接続はすべてブロックされます。クライアントマシンからのリモート接続用にRedisを設定します。
次のように構成ファイルにアクセスします。
$ sudo vim /etc/redis.conf
バインドパラメータを見つけて、127.0.0.1を0.0.0.0に置き換えます
bind 0.0.0.0
構成ファイルを保存して閉じます。変更を有効にするには、Redisを再起動します。
$ sudo systemctl restart redis
Redisシェルにログインするには、次のコマンドを実行します:
$ redis-cli
redisサーバーにpingを実行してみてください。図のように「PONG」応答が返されるはずです。
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
ステップ4:Redisサーバーを保護する
Redisのセットアップでは、認証なしで誰でもシェルとデータベースにアクセスできるため、重大なセキュリティリスクが発生します。パスワードを設定するには、構成ファイル /etc/redis.confに戻ります。
requirepassパラメータを見つけてコメントを外し、図のように強力なパスワードを指定します
Redisを再起動して、サーバーに戻ります。
$ sudo systemctl restart redis
認証前にコマンドを実行しようとすると、以下のエラーが表示されます
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 127.0.0.1:6379>
認証するには、「auth」に続けてパスワードセットを入力します。私たちの場合、これは次のようになります:
auth[メール保護]
その後、コマンドの実行を続行できます。
[[email protected] ~]$ redis-cli 127.0.0.1:6379> auth [email protected] OK 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
redis-cliから出るには、exit
と入力しますステップ5:redis用のファイアウォールを構成する
最後に、Redisサーバーへのリモート接続を許可するようにファイアウォールを構成する必要があります。これを行うには、6379であるredisポートを開く必要があります。
したがって、以下のコマンドを実行します。
$ sudo firewall-cmd --add-port=6379/tcp --permanent $ sudo firewall-cmd --reload
Redisにリモートでアクセスするには、以下の構文を使用します。
$ redis-cli -h REDIS_IP_ADDRESS
次に認証して「ENTER」をクリックします ’
RedisサーバーのIPアドレスは192.168.1.5です。別のクライアントPCからのコマンドは
になります。$ redis-cli -h 192.168.1.5
次に、パスワードを入力して「ENTER」を押します
auth[メール保護]
上記は、Redisサーバーが正常にインストールされたことを確認しています。次のセクションに進みましょう。
Redisベンチマークの実行方法
Redisには、redisベンチマークと呼ばれる組み込みツールが付属しており、データ転送速度、スループット、レイテンシなど、システムのパフォーマンス統計に関する洞察を提供します。
Redisで使用できるコマンドオプションには次のものがあります
- -n:これは行われるリクエストの数を定義します。デフォルトは100000です
- -c:シミュレートする並列接続の数を定義します。デフォルトでは、この値は50です
- -p:これはRedisポートであり、デフォルトでは6379です
- -h:ホストを定義するために使用されます。デフォルトでは、この値はlocalhost(127.0.0.1)に設定されています
- -a:サーバーが認証を必要とする場合にパスワードの入力を求めるために使用されます
- -q:クワイエットモードを表します。 1秒あたりに行われた平均リクエストを表示します
- -t:テストの組み合わせを実行するために使用されます
- -P:パフォーマンスを向上させるためのパイプライン処理に使用されます。
- -d:GET値とSET値のデータサイズをバイト単位で指定します。デフォルトでは、これは3バイトに設定されています
例:
平均番号を確認します。 Redisサーバーが処理できるリクエストの数は次のコマンドを実行します:
$ redis-benchmark -q
最後の行に注意してください。これは、Redisが1秒あたり23046のリクエストを処理できることを示しています。
さらに、-tオプションを使用して、コマンドのサブセットを実行できます。以下の例では、これを使用して平均番号を表示しています。 SETおよびGETコマンドのリクエスト。
$ redis-benchmark -t set、get -q
[[email protected] ~]$ redis-benchmark -t set,get -q SET: 26102.84 requests per second GET: 25555.84 requests per second [[email protected] ~]$
出力から、SETコマンドに対して1秒あたり26102.84のリクエストがあり、GETコマンドに対して25555.84のリクエストがあることがわかります。
デフォルトでは、並列接続の数は 50です。 。別の数のクライアント接続(たとえば1000)を指定するには、次のように-cパラメーターを使用します。
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 SET: 21997.36 requests per second GET: 22119.00 requests per second [[email protected] ~]$
お気づきかもしれませんが、並列接続の数が50から1000に増えたため、1秒あたりのリクエスト数が減少しました。
ステップアップして、リクエスト数を1000000に設定しましょう
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 -n 1000000 SET: 16660.28 requests per second GET: 21550.79 requests per second [[email protected] ~]$
繰り返しになりますが、SETとGETの値は、リクエスト数がデフォルトの100,000から1,000,000に増加したために低下します。
そして、これで今日のトピックは終わりです。 CentOS 8にRedisサーバーを正常にインストールし、サーバーでいくつかのベンチマークテストを実行することができました。フィードバックやコメントを共有していただければ幸いです。