1.前言
日常开发中redis作为缓存中间件,应用范围越来越广泛,加上本身对集群支持。特意搭建了一个主从同步和哨兵。
2.主从同步
(1) 基础环境
准备两台redis服务器:
主服务器:192.168.0.116:3306
从服务器:192.168.0.171:3306
(2) 主节点配置
1 进入配置文件
vim /etc/redis.conf
2 配置参数
# 修改端口
port 3066
# 指定redis是否要用守护线程的方式启动
daemonize yes
# 注释掉 bind该行 允许远程访问
#bind 192.168.0.116
# 关闭保护模式,外部网络可以直接访问
protected-mode no
# 配置访问密码 不配置默认密码为空
requirepass 访问密码
3. 重启服务
systemctl restart redis
(3) 从节点配置
1 进入配置文件
vim /etc/redis.conf
2 配置参数
# 修改端口
port 3066
# 指定redis是否要用守护线程的方式启动
daemonize yes
# 注释掉 bind该行 允许远程访问
#bind 192.168.0.171
# 关闭保护模式,外部网络可以直接访问
protected-mode no
# 配置访问密码 不配置默认密码为空
requirepass 访问密码
# 如果主节点配置了访问密码 需要配置该属性
masterauth 主节点访问密码
# 配置主节点IP和端口 核心配置
slaveof 192.168.0.116 3600
3 重启服务
systemctl restart redis
(4) 查看详情
# 进入redis客户端
redis-cli -p 3306
# 查看主从信息
info replication
主服务器
从服务器
3. 哨兵模式
redis现版本安装后携带了redis-sentinel系统,本身就提供哨兵功能。直接进入安装目录打开配置文件配置即可
1 进入配置文件
vim /etc/redis-sentinel.conf
2 配置文件
# 关闭保护模式,外部网络可以直接访问
protected-mode no
# 指定redis是否要用守护线程的方式启动
daemonize yes
# 修改端口
port 6800
# 配置监听节点 分别为主节点IP ,端口 和 哨兵数量
# 哨兵数量每个都是独立的进程 大多数进程都认为主要节点宕机才会切换到从数据库
sentinel monitor mymaster 192.168.0.116:3306 3306 1
# 如果主节点存在密码 需要配置密码
sentinel auth-pass mymaster 主节点密码
# 5秒内master6800没有响应,就认为SDOWN
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
# 启动哨兵
systemctl redis-sentinel redis-sentinel
4.注意
1.从节点只能查询数据,不能添加数据。
2.如果需要测试主从是否搭建成功,可以直接在主数据库添加数据,同时查看从数据库是否存在数据。
3.如果需要测试哨兵模式是否搭建成功
(1) 主数据库添加数据
(2) 将主数据库宕机
(3) 通过info replication命令查看从数据库是否升级为主节点
(4) 查看数据看能否成功查询