8運用と保守-ubuntu16.04.6xenial-基本的な環境の構築-ドッカー統合redis

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 #查看监控节点信息

3redisサービスを使用する

おすすめ

転載: blog.csdn.net/weixin_45544465/article/details/100334810