記事ディレクトリ
1redisの簡単な説明
1.1サポートされているデータタイプ
Redisは、string(string)、hash(hash)、list(list)、set(collection)、zset(sorted set:ordered set)の5つのデータタイプをサポートしています。
参照アドレス:https://www.runoob.com/redis/redis-data-types.html
1.2 Redisha高可用性ソリューション
単一障害点:1つのマスターと2つのスレーブを含む少なくとも3つのノードの可用性が高い。マスターノードがサービスを停止すると、すべてのスレーブノードの1つがマスターノードとして選択されます。マスターノードがサービスを停止しないが、ネットワークの問題のために監視ステータスが応答しない場合、デフォルトは停止します。サーブするときは2つのホストがあり、ノードからデータをコピーするときは2つのデータソースがあるため、データ同期の問題が発生します。
解決策:Redisは、センチネルモードを使用して、マスターとスレーブを監視することで自動回復を実現することをお勧めします。マスターノードがサービスを停止すると、スレーブノードにダウングレードされます。監視とオフラインマスターノードサービスが開始されると、オフラインマスターノードは自動的にアップグレードのキューに入れられます。
2redisクラスターを構築します
2.1redis起動ファイルを設定します
- 起動方法は次のとおりです。docker-composeup-d
- ファイルディレクトリは次のとおりです:/ usr / local / docker / redis /
- ファイル名は次のとおりです。docker-compose.yml
- ファイルの内容は次のとおりです。
version: '3'
services:
master:
restart: always
container_name: redis-master
image: redis
ports:
- 6379:6379
slave1:
restart: always
container_name: redis-slave-1
image: redis
ports:
- 6380:6379
command: redis-server --slaveof redis-master 6379
slave2:
restart: always
container_name: redis-slave-2
image: redis
ports:
- 6381:6379
command: redis-server --slaveof redis-master 6379
2.2歩哨の構成ファイルを設定する
- ファイルディレクトリは次のとおりです:/ usr / local / docker / redis / sentinel /
- ファイル名は次のとおりです。
sentinel1.conf、sentinel2.conf、sentinel3.conf
- ファイルの内容は次のとおりです。3つのファイルの内容は同じです
port 26379
dir /tmp
#自定义集群名,ip为主节点的ip,2为最小投票数
sentinel monitor mymaster 192.168.30.148 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
2.3センチネルの起動ファイルを設定する
- 起動方法は次のとおりです。docker-composeup-d
- ファイルディレクトリは次のとおりです:/ usr / local / docker / redis / sentinel /
- ファイル名は次のとおりです。docker-compose.yml
- ファイルの内容は次のとおりです。
version: '3'
services:
sentinel1:
image: redis
container_name: sentinel1
ports:
- 26379:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf
sentinel2:
image: redis
container_name: sentinel2
ports:
- 26380:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf
sentinel3:
image: redis
container_name: sentinel3
ports:
- 26381:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
2.4検証が成功したかどうか
2.4.1redisが正常に開始されたことを確認します
redisデスクトップマネージャーツールを使用して、IPとポートを入力し、接続を確認します
2.4.2センチネルが正常に開始されたことを確認します
コマンド検証:
docker exec -it sentinel1 bash #进入容器
redis-cli -p 26379 #连接redis
sentinel master mymaster #查看监控节点信息