Redisレプリケーション+シャーディング

https://changineer.info/server/nosql/nosql_redis_cluster.html

前提
OS : Rocky Linux 9.1
Redis version : 6.2.7

mmm191 : Redis master(Shard#1)
mmm192 : Redis master(Shard#2)
mmm193 : Redis master(Shard#3)
mmm194 : Redis replica(Shard#1)
mmm195 : Redis replica(Shard#2)
mmm196 : Redis replica(Shard#3)

 

-- 1. Redisインストール[mmm191,mmm192,mmm193,mmm194,mmm195,mmm196で実施]

dnf install -y redis

redis-server --version


-- 2. Redisシャード設定[mmm191,mmm192,mmm193,mmm194,mmm195,mmm196で実施]


vim /etc/redis/redis.conf


bind 127.0.0.1 -::1

bind 0.0.0.0


# cluster-enabled yes

cluster-enabled yes

# cluster-config-file nodes-6379.conf

cluster-config-file nodes-6379.conf

# cluster-node-timeout 15000

cluster-node-timeout 15000

appendonly no

appendonly yes

systemctl enable redis
systemctl restart redis
systemctl status redis

 

tail /var/log/redis/redis.log 


-- 3. Redisシャード構築[mmm191で実施]

redis-cli --cluster create \
192.168.137.191:6379 \
192.168.137.192:6379 \
192.168.137.193:6379 \
192.168.137.194:6379 \
192.168.137.195:6379 \
192.168.137.196:6379 \
--cluster-replicas 1


redis-cli -c


cluster info
cluster nodes


-- 4. 動作確認[mmm191,mmm192,mmm193,mmm194,mmm195,mmm196で実施]

redis-cli -c

set key1 val1
set key2 val2
set key3 val3
set key4 val4
set key5 val5
set key6 val6

get key1
get key2
get key3
get key4
get key5
get key6

 

killall redis-server
ps -ef | grep redis

systemctl stop redis
systemctl start redis

redis-cli -c cluster nodes

redis-cli -c get key1


mmm191を強制停止 -> replicaの中からmasterが選出されmasterが3台になる
mmm191を復旧 -> replicaとして組み込まれる


masterを元のノードに戻したい場合、手動フェイルオーバーをreplicaで実行する

redis-cli -c cluster failover