日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

docker Redis集群

發(fā)布時(shí)間:2024/9/27 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker Redis集群 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

            • 1. 創(chuàng)建redis網(wǎng)卡
            • 2. 創(chuàng)建redis配置
            • 3. 啟動(dòng)redis集群
            • 4. 創(chuàng)建集群
            • 5. 記錄與調(diào)試
            • 6. 故障轉(zhuǎn)移

1. 創(chuàng)建redis網(wǎng)卡
# 刪除容器 docker rm -f ${docker ps -aq}# 創(chuàng)建redis網(wǎng)卡 docker network create redis --subnet 172.38.0.0/16# 刪除redis網(wǎng)卡 docker network rm redis# 查看docker網(wǎng)絡(luò) docker network ls# 查看具體信息 docker network inspect redis
2. 創(chuàng)建redis配置
# 通過腳本創(chuàng)建6個(gè)redis配置 for port in $(seq 1 6); \ do \ mkdir -p /app/mydata/redis/node-${port}/conf touch /app/mydata/redis/node-${port}/conf/redis.conf cat << EOF >/app/mydata/redis/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.38.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done
3. 啟動(dòng)redis集群
  • redis-1
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \ -v /app/mydata/redis/node-1/data:/data \ -v /app/mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
  • redis-2
docker run -p 6372:6379 -p 16372:16379 --name redis-2 \ -v /app/mydata/redis/node-2/data:/data \ -v /app/mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
  • redis-3
docker run -p 6373:6379 -p 16373:16379 --name redis-3 \ -v /app/mydata/redis/node-3/data:/data \ -v /app/mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
  • redis-4
docker run -p 6374:6379 -p 16374:16379 --name redis-4 \ -v /app/mydata/redis/node-4/data:/data \ -v /app/mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
  • redis-5
docker run -p 6375:6379 -p 16375:16379 --name redis-5 \ -v /app/mydata/redis/node-5/data:/data \ -v /app/mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
  • redis-6
docker run -p 6376:6379 -p 16376:16379 --name redis-6 \ -v /app/mydata/redis/node-6/data:/data \ -v /app/mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
4. 創(chuàng)建集群

進(jìn)入任意一個(gè)redis容器,這里演示redis-1

docker exec -it redis-1 /bin/sh

創(chuàng)建集群

redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
5. 記錄與調(diào)試
[root@localhost node-1]# docker exec -it redis-1 /bin/sh /data # ls appendonly.aof nodes.conf /data # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-rep licas 1 >>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 172.38.0.15:6379 to 172.38.0.11:6379 Adding replica 172.38.0.16:6379 to 172.38.0.12:6379 Adding replica 172.38.0.14:6379 to 172.38.0.13:6379 M: 9487301023ddb4d28fc0ae6fdb9f1f5a165a1532 172.38.0.11:6379slots:[0-5460] (5461 slots) master M: 7ae515caa00ad54517756fbb6f8a5bfab271a787 172.38.0.12:6379slots:[5461-10922] (5462 slots) master M: b9e57a5d66e08e163bc41d71ef28070b4f20ce02 172.38.0.13:6379slots:[10923-16383] (5461 slots) master S: a23ba18c346a75e8eb106bcab760fdfb6789a256 172.38.0.14:6379replicates b9e57a5d66e08e163bc41d71ef28070b4f20ce02 S: abac69c275d92b85a1f55bd9455dd7a123caa6d5 172.38.0.15:6379replicates 9487301023ddb4d28fc0ae6fdb9f1f5a165a1532 S: 674ae1ba47f19c68d79e90986d432914d436010e 172.38.0.16:6379replicates 7ae515caa00ad54517756fbb6f8a5bfab271a787 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 172.38.0.11:6379) M: 9487301023ddb4d28fc0ae6fdb9f1f5a165a1532 172.38.0.11:6379slots:[0-5460] (5461 slots) master1 additional replica(s) M: b9e57a5d66e08e163bc41d71ef28070b4f20ce02 172.38.0.13:6379slots:[10923-16383] (5461 slots) master1 additional replica(s) S: abac69c275d92b85a1f55bd9455dd7a123caa6d5 172.38.0.15:6379slots: (0 slots) slavereplicates 9487301023ddb4d28fc0ae6fdb9f1f5a165a1532 S: 674ae1ba47f19c68d79e90986d432914d436010e 172.38.0.16:6379slots: (0 slots) slavereplicates 7ae515caa00ad54517756fbb6f8a5bfab271a787 M: 7ae515caa00ad54517756fbb6f8a5bfab271a787 172.38.0.12:6379slots:[5461-10922] (5462 slots) master1 additional replica(s) S: a23ba18c346a75e8eb106bcab760fdfb6789a256 172.38.0.14:6379slots: (0 slots) slavereplicates b9e57a5d66e08e163bc41d71ef28070b4f20ce02 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. /data # # 客戶端測(cè)試 /data # redis-cli -c 127.0.0.1:6379> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:289 cluster_stats_messages_pong_sent:294 cluster_stats_messages_sent:583 cluster_stats_messages_ping_received:289 cluster_stats_messages_pong_received:289 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:583 127.0.0.1:6379> # 查看集群節(jié)點(diǎn)信息 127.0.0.1:6379> cluster nodes b9e57a5d66e08e163bc41d71ef28070b4f20ce02 172.38.0.13:6379@16379 master - 0 1643181809583 3 connected 10923-16383 abac69c275d92b85a1f55bd9455dd7a123caa6d5 172.38.0.15:6379@16379 slave 9487301023ddb4d28fc0ae6fdb9f1f5a165a1532 0 1643181809583 5 connected 674ae1ba47f19c68d79e90986d432914d436010e 172.38.0.16:6379@16379 slave 7ae515caa00ad54517756fbb6f8a5bfab271a787 0 1643181808569 6 connected 7ae515caa00ad54517756fbb6f8a5bfab271a787 172.38.0.12:6379@16379 master - 0 1643181809000 2 connected 5461-10922 a23ba18c346a75e8eb106bcab760fdfb6789a256 172.38.0.14:6379@16379 slave b9e57a5d66e08e163bc41d71ef28070b4f20ce02 0 1643181809583 4 connected 9487301023ddb4d28fc0ae6fdb9f1f5a165a1532 172.38.0.11:6379@16379 myself,master - 0 1643181807000 1 connected 0-5460 127.0.0.1:6379> # 設(shè)置值 127.0.0.1:6379> set a b -> Redirected to slot [15495] located at 172.38.0.13:6379 OK 172.38.0.13:6379>
6. 故障轉(zhuǎn)移

再開一個(gè)窗口
思路:停止172.38.0.13對(duì)應(yīng)的master節(jié)點(diǎn),然后,再獲取a的值,

  • 停止a key存儲(chǔ)主節(jié)點(diǎn)的docker容器

  • 獲取a的值

get a


總結(jié)

以上是生活随笔為你收集整理的docker Redis集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。