redis-cluster部署

最近面试被问到redis集群内容 因此整理下相关部署内容。文章以图为主,看着一点都不费劲,看完都不需要找翻其他文档。你就放心整吧,一整一个不吱声

环境准备

随便一台电脑, 安装一下docker

集群部署

  1. 执行脚本命令,生成redis.conf 配置文件
for port in $(seq 6380 6385); 
do 
mkdir -p /Users/candice/DevOps/docker/redis-cluster/node-${port}/conf
touch /Users/candice/DevOps/docker/redis-cluster/node-${port}/conf/redis.conf
cat  << EOF > /Users/candice/DevOps/docker/redis-cluster/node-${port}/conf/redis.conf
port ${port}
requirepass 1234
masterauth 1234
bind 0.0.0.0
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes 
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 10.10.10.139
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
EOF
done

效果展示

image.png
  1. 编写redis-cluster.yml 准备启动redis
version: '3.7'
services:
   node-redis-1:
     image: redis:latest
     container_name: node-redis-1
     ports:
       - "6380:6380"
       - "16380:16380"
     volumes:
       # 目录记得修改, 别照搬照抄啊
       # 第一步生成的redis.conf 挂载到容器内
       - ./node-6380/conf/redis.conf:/etc/redis/redis.conf 
       #  data数据挂载,rdb aof数据文件映射到宿主机
       - /Users/yangjing/DevOps/data-volume/node-redis-1:/data      
     command: redis-server /etc/redis/redis.conf 
     privileged: true
   node-redis-2:
     image: redis:latest
     container_name: node-redis-2
     ports:
       - "6381:6381"
       - "16381:16381"
     volumes:
       - ./node-6381/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-2:/data       
     command: redis-server /etc/redis/redis.conf 
     privileged: true
   node-redis-3:
     image: redis:latest
     container_name: node-redis-3
     ports:
       - "6382:6382"
       - "16382:16382"
     volumes:
       - ./node-6382/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-3:/data 
     command: redis-server /etc/redis/redis.conf 
     privileged: true
   node-redis-4:
     image: redis:latest
     container_name: node-redis-4
     ports:
       - "6383:6383"
       - "16383:16383"
     volumes:
       - ./node-6383/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-4:/data   
     command: redis-server /etc/redis/redis.conf 
     privileged: true
   node-redis-5:
     image: redis:latest
     container_name: node-redis-5
     ports:
       - "6384:6384"
       - "16384:16384"
     volumes:
       - ./node-6384/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-5:/data 
     command: redis-server /etc/redis/redis.conf 
     privileged: true
   node-redis-6:
     image: redis:latest
     container_name: node-redis-6
     ports:
       - "6385:6385"
       - "16385:16385"
     volumes:
       - ./node-6385/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-6:/data 
     command: redis-server /etc/redis/redis.conf 
     privileged: true

效果展示

image.png
  1. 随便找一个节点 进到docker内部 进行配置
// 密码 端口地址记得按自己配置的改
redis-cli  -a 1234 --cluster create 10.10.10.139:6380 10.10.10.139:6381 10.10.10.139:6382 10.10.10.139:6383 10.10.10.139:6384 10.10.10.139:6385   --cluster-replicas 1
image.png
  1. 初始集群已配置完,看看效果
image.png
  1. 写写数据 试一下
image.png

集群扩容

现在是三主三从,如果想再加一主一从 怎么搞

  1. 再搞两个redis.conf 步骤跟之前一样, 记得改port,我是加了个6386、6387
  2. 部署下新的两个节点
version: '3.7'
services:
   node-redis-7:
     image: redis:latest
     container_name: node-redis-7
     ports:
       - "6386:6386"
       - "16386:16386"
     volumes:
       - ./node-6386/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-7:/data      
     command: redis-server /etc/redis/redis.conf 
     privileged: true
   node-redis-8:
     image: redis:latest
     container_name: node-redis-8
     ports:
       - "6387:6387"
       - "16387:16387"
     volumes:
       - ./node-6387/conf/redis.conf:/etc/redis/redis.conf 
       - /Users/yangjing/DevOps/data-volume/node-redis-8:/data       
     command: redis-server /etc/redis/redis.conf 
     privileged: true
  1. 先挂新的master节点


    image.png
  2. 重新分配master 哈希数据槽

image.png
  1. 看看效果


    image.png
  2. 把6387从节点挂上去

image.png

集群缩容

先删从节点 再处理master

image.png
image.png

结尾

文章写的挺累的,有哪里不明确或者有问题 随时留言哦, 我们共同探讨 共同学习~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容