RHEL9でRedisのインストールとRedis Clusterの構築

はじめに

説明

RHEL9でRedisのインストールとRedis Clusterを構築します。

今回はレプリカの存在しない3ノード構成で構築します。

構築所要時間

30分前後となります。

慣れている方は15分程度です。

SELinuxの無効化とFWの無効化

SELinuxの無効化はRHEL8以前と異なりますのでこちらの記事を参考にしてください。

一旦FWを無効化します。

必要に応じてsudo systemctl stop firewalldを設定して下さい。

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld

Redisをインストール

RHEL9のレポジトリの設定に成功していれば以下のようにリストが表示されます。
パッケージ名にバージョン番号が記載されていないので
listコマンドで調べた所6.2であることがわかります。

$ sudo dnf search redis
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:11:07 時間前の 2022年03月23日 14時34分56秒 に実施しました。
========================================================================== 名前 完全一致: redis ===========================================================================
redis.x86_64 : A persistent key-value database
========================================================================= 名前 & 概要 一致: redis =========================================================================
pcp-pmda-redis.x86_64 : Performance Co-Pilot (PCP) metrics for Redis
redis-devel.x86_64 : Development header for Redis module development
redis-devel.i686 : Development header for Redis module development
redis-doc.noarch : Documentation for Redis including man pages
============================================================================ 概要 一致: redis =============================================================================
perl-NEXT.noarch : Pseudo-class that allows method redispatch

$ sudo dnf list redis
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:12:04 時間前の 2022年03月23日 14時34分56秒 に実施しました。
利用可能なパッケージ
redis.x86_64                                                       6.2.6-1.el9                                                        rhel-9-for-x86_64-appstream-beta-rpms

$ sudo dnf -y install redis

Redisの動作確認

Redisを起動します。

$ sudo systemctl start redis
$ redis-cli ping
PONG

Redis Clusterの構築

Redis Clusterを構築します。
IPアドレスを開放など必要な設定をし、再起動します。

$ sudo vi /etc/redis/redis.conf
- bind 127.0.0.1 -::1 #削除
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

$ sudo systemctl restart redis
$ ss -natp

クラスタ構築コマンドを実行します。

$ sudo redis-cli --cluster create 192.168.0.159:6379 192.168.0.162:6379 192.168.0.164:6379
>>> Performing hash slots allocation on 3 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
M: a1a296977672aab3d9f7cc1080e825ca01d2dc9e 192.168.0.159:6379
   slots:[0-5460] (5461 slots) master
M: 311ec555a283eb2d8744876307daa27d2ed724dd 192.168.0.162:6379
   slots:[5461-10922] (5462 slots) master
M: 6ae4cf7417141c1aebcf703d51fdb0cf7c83f9ce 192.168.0.164:6379
   slots:[10923-16383] (5461 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join

>>> Performing Cluster Check (using node 192.168.0.159:6379)
M: a1a296977672aab3d9f7cc1080e825ca01d2dc9e 192.168.0.159:6379
   slots:[0-5460] (5461 slots) master
M: 6ae4cf7417141c1aebcf703d51fdb0cf7c83f9ce 192.168.0.164:6379
   slots:[10923-16383] (5461 slots) master
M: 311ec555a283eb2d8744876307daa27d2ed724dd 192.168.0.162:6379
   slots:[5461-10922] (5462 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

Redis Clusterの動作確認

最後にクラスタ構成を確認します。

$ redis-cli -p 6379 cluster nodes
6ae4cf7417141c1aebcf703d51fdb0cf7c83f9ce 192.168.0.164:6379@16379 master - 0 1648016364265 3 connected 10923-16383
a1a296977672aab3d9f7cc1080e825ca01d2dc9e 192.168.0.159:6379@16379 myself,master - 0 0 1 connected 0-5460
311ec555a283eb2d8744876307daa27d2ed724dd 192.168.0.162:6379@16379 master - 0 1648016365295 2 connected 5461-10922

あとがき

今回はRedisのインストールとRedis Clusterについて記載しました。

次回はMariaDBのクラスタを構築します。


ここまでお読みいただき、ありがとうございました!