单机模式(学习环境建议):
1.添加软件安装源
yum install epel-release
2.安装redis
yum install redis -y
3.启动redis
systemctl start redis
4.允许开机启动
systemctl enable redis
5.修改配置
vim /etc/redis.conf
6.bind改成自己的ip地址
7.进入redis:
redis-cli -h ip地址
哨兵模式(生产环境建议):
1.安装redis
- # 添加软件安装源
-
- yum install epel-release
-
- # 安装redis
-
- yum install redis -y
-
- # 启动redis、启动redis哨兵
-
- systemctl start redis
- systemctl start redis-sentinel
-
- # 允许开机启动
-
- systemctl enable redis
- systemctl enable redis-sentinel
-
- # 之后进行配置修改:为哨兵集群,重启启动服务
2.修改redis.conf配置
- #这里假设配置1主2从3哨兵 主机地址:192.168.50.150 从机地址:192.168.50.151,192.168.50.152
- # 主机修改redis配置文件:/etc/redis.conf
- # 1. 修改绑定ip为服务器内网ip地址,做绑定,三台各自填写各自的ip地址
-
- bind 192.168.50.150
-
- # 2. 保护模式修改为否,允许远程连接
-
- protected-mode no
-
- # 4. 设定密码
-
- requirepass ok
-
- # 5. 设定主库密码与当前库密码同步,保证从库能够提升为主库
-
- masterauth ok
-
- # 6. 打开AOF持久化支持
-
- appendonly yes
-
- #从机同主机相同 不过bind自己的地址
-
- slaveof 192.168.50.151 6379
3.修改哨兵redis-sentinel.conf 配置
- #三台机器都修改/etc/redis-sentinel.conf配置
-
- #禁止保护模式
-
- protected-mode no
-
- #配置监听的主服务器,这里 sentinel monitor 代表监控
-
- #mymaster代表服务器名称,可以自定义
-
- #192.168.11.128代表监控的主服务器
-
- #6379代表端口
-
- #2代表只有两个或者两个以上的烧饼认为主服务器不可用的时候,才会做故障切换操作
-
- sentinel monitor mymaster 192.168.50.150 6379 2
-
- #sentinel auth-pass 定义服务的密码
-
- #mymaster服务名称
-
- #ok Redis服务器密码
-
- #注意 这句话必须放在sentinel monitor mymaster 下面否则会报错
-
- sentinel auth-pass mymaster ok
4.同步测试 主从切换测试
- #重启redis和哨兵服务
-
- systemctl restart redis
- systemctl restart redis-sentinel
-
- #数据同步测试 三台机器各自启动自己的客户端
-
- redis-cli -h 192.168.50.150 -a ok
- redis-cli -h 192.168.50.151 -a ok
- redis-cli -h 192.168.50.152 -a ok
-
- #分别使用命令查看集群状态
-
- info replication
-
- #在主节点上写入数据 查看从机是否备份数据(这里注意从节点不能写入数据)
- #直接shutdown主节点 等会查看从节点情况 会有一台从节点转为主节点
-
- #此时再恢复原主节点 发行原主节点只能成为slave节点
5.SpringBoot 连接有哨兵模式的Redis
- server:
-
- port: 12000
-
- spring:
-
- redis:
-
- sentinel:
-
- master: mymaster
-
- nodes: 192.168.50.150:26379,192.168.50.151:26379,192.168.50.152:26379
-
- database: 0
-
- password: ok
-
- host: 192.168.50.150
-
- port: 6379
注意:在redis主节点宕机后切换到从节点时 redis工作会暂时阻塞