小飞知识库 | YeLu🤠MiLu🤪 小飞知识库 | YeLu🤠MiLu🤪
  • 函数式编程
  • Spring
  • SpringMVC
  • SpringBoot
  • SpringCloud
  • Mybatis
  • JVM
  • JUC并发编程
  • 设计模式
  • 单元测试
  • Redis
  • RabbitMQ
  • mysql
  • oracle
  • linux
  • nginx
  • docker
  • elasticSearch
  • windows
  • 虚拟机
  • 监控系统
  • https
  • 内网穿透
  • 前端文章

    • JavaScript
  • 页面

    • HTML
    • CSS
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • TypeScript
    • JS设计模式总结
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 版本管理

    • Git笔记
  • 项目构建

    • maven
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • JAR包相关
  • 关于
  • 收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YeLu

爱技术的YeLu🤠
  • 函数式编程
  • Spring
  • SpringMVC
  • SpringBoot
  • SpringCloud
  • Mybatis
  • JVM
  • JUC并发编程
  • 设计模式
  • 单元测试
  • Redis
  • RabbitMQ
  • mysql
  • oracle
  • linux
  • nginx
  • docker
  • elasticSearch
  • windows
  • 虚拟机
  • 监控系统
  • https
  • 内网穿透
  • 前端文章

    • JavaScript
  • 页面

    • HTML
    • CSS
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • TypeScript
    • JS设计模式总结
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 版本管理

    • Git笔记
  • 项目构建

    • maven
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • JAR包相关
  • 关于
  • 收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Redis

    • redis介绍

    • redis安装

    • redis基础

    • redis进阶

      • 主从复制
      • 哨兵模式
      • 集群模式
        • 1、创建 redis-cluster 文件夹
        • 2、创建 7001-7006 文件夹
        • 3、复制redis.conf到7001~7006文件夹中
        • 4、修改 redis.conf 中的内容
        • 5、启动redis集群服务
        • 6、创建redis集群
        • 7、登录客户端进行测试
          • 进行设置值测试
          • 查看主从服务器角色
      • Spring整合Redis
      • 手写Redis客户端(jedis)
      • redis常见问题
  • 缓存
  • Redis
  • redis进阶
YeLu🤠
2023-04-04
目录

集群模式

主从模式,只存在一个master的问题

于是在 redis3.0 诞生了集群模式

# 1、创建 redis-cluster 文件夹

在/usr/local目录下创建 redis-cluster 文件夹

cd /usr/local
mkdir redis-cluster
1
2

# 2、创建 7001-7006 文件夹

在 redis-cluster 中创建 7001-7006 文件夹

cd /usr/local/redis-cluster
mkdir 7001 7002 7003 7004 7005 7006
1
2

# 3、复制redis.conf到7001~7006文件夹中

cp /usr/local/redis-5.0.7/redis.conf /usr/local/redis-cluster/7001/
1

# 4、修改 redis.conf 中的内容

修改 7001~7006 中redis.conf 中的内容

进入 7001文件夹 vim redis.conf 后 输入 /bind 可以快速定位到关键字的位置

需要修改的内容如下

bind 0.0.0.0 # 允许所有机器可以访问
port 7001 # 暴露的端口
daemonize yes # 后台启动
pidfile /var/run/redis_7001.pid # 当redis在后台运行的时候,redis会默认把pid文件放在/var/run/redis.pid下,
# 也可以配置到其它地址。当运行多个redis服务器时,需要指定不同的pid文件和端口
dir "/usr/local/redis-cluster/7001"
logfile "/var/log/redis/7001/redis.log" # 日志文件 可改可不改
appendonly yes
cluster-enabled yes # 开启集群
cluster-config-file nodes-7001.conf # 放开注释 每个集群节点自己的配置文件
1
2
3
4
5
6
7
8
9
10

后续将 7002~7006 继续如上操作

# 5、启动redis集群服务

注意需要先安装好redis服务 redis安装->基础安装

cd /usr/local/redis/bin
# 启动 7001 ~ 7006 的集群服务
./redis-server /usr/local/redis-cluster/7001/redis.conf
./redis-server /usr/local/redis-cluster/7002/redis.conf
./redis-server /usr/local/redis-cluster/7003/redis.conf
./redis-server /usr/local/redis-cluster/7004/redis.conf
./redis-server /usr/local/redis-cluster/7005/redis.conf
./redis-server /usr/local/redis-cluster/7006/redis.conf
1
2
3
4
5
6
7
8

查看集群是否启动成功

ps -ef | grep redis
1

# 6、创建redis集群

cd /usr/local/redis/bin
./redis-cli --cluster create ip:7001 ip:7002 ip:7003 ip:7004 ip:7005 ip:7006 --cluster-replicas 1 
# ip 记得替换成你自己的ip 比如我这边本地测试替换成 169.254.182.30
# --cluster-replicas 1 表示 主从 配置比 1表示的是 1:1,比如我现在6个redis服务那么 会分配 3个主3个从
1
2
3
4

# 7、登录客户端进行测试

cd /usr/local/redis/bin
./redis-cli -c -h 169.254.182.30 -p 7001
1
2

# 进行设置值测试

上图可见 7001 上设置值时存储到7002上,然后7002设置值存储到7003上,然后7003设置值存储到7003,然后7003设置值存储到7002上,然后7002设置值存储到7001上

由此可见,主服务上面的数据之和才是所有的数据

登录主服务器查看已存储的key 可以很明显观察到存储的数据

# 查看主从服务器角色

cd /usr/local/redis/bin # 进入启动目录
./redis-cli -c -h 169.254.182.30 -p 7001 # 登录客户端
info # 查看当前redis服务信息
1
2
3

分别登录 7001 和 7004 客户端 可以看到主从服务器的数据是一致的(主服务器的数据会自动同步到从服务器)

现在有这么个情况,如果主服务器死了,看下会发生什么情况

netstat -apn | grep 7001 # 查看 7001 进程
kill -9 pid # 杀死7001 主服务器
1
2

7001 主服务器死了之后,我们登录进入 7004 中查看 info 信息

./redis-cli -c -h 169.254.182.30 -p 7004
info
1
2

可以看见 7004 变成了主服务器,现在我们再把 7001 重启下

./redis-server /usr/local/redis-cluster/7001/redis.conf # 启动 7001
./redis-cli -c -h 169.254.182.30 -p 7004 # 进入7004
info # 查看 7004 信息
1
2
3

由上图可以看见 7001 变成 7004 的从服务器了

总结:主服务器死了,会从 从服务器中选中一个成为主服务器,当(杀死的)主服务器重启后,将会自动变成从服务器 和 新主服务器关联

#redis
最近更新: 2025/07/30, 15:37:56
哨兵模式
Spring整合Redis

← 哨兵模式 Spring整合Redis→

最近更新
01
服务端配置
07-30
02
frp 安装
07-30
03
Prometheus采集Springboot应用
02-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | YeLu🤠MiLu🤪 | MIT License 蜀ICP备2024116879号 | 川公网安备51012202001998号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
欢迎你,我的朋友
看板娘