该栏目会系统的介绍 Redis 的知识体系,共分为相关概念、操作指令、主从复制等模块
简介
1、概述
- :主服务器数据更新后根据配置和策略,自动同步到从服务器的机制,主服务器以写为主,从服务器以读为主
2、优点
- 读写分离,性能扩展
- 容灾快速恢复
3、复制原理
- slave 启动成功连接到master后发送一个同步命令
- slave 收到命令,启动后台的同步进程,将所有接收到的修改数据集命令, 在后台进程执行完毕之后,master 将传送整个数据文件到 slave
- slave 服务在接收到数据库文件数据后,将其存盘并加载到内存中
- 每次 master 进行写操作之后,会发送给 slave 进行数据同步
常用模式
1、一主二仆
- :master 写入数据后会同步给 slaves,master 宕机后 slaves 不会成为 master
2、薪火相传
- :上一个 slave 可以是下一个 slave 的 master,slave 同样可以接收其他 slaves 的连接和同步请求, 可以有效减轻 master 的写压力,去中心化降低风险
3、哨兵模式
- :监控 master 是否故障,如果故障了根据投票数自动将 slaves 转换为主库
相关配置
# 公共配置文件 redis.conf
daemonize yes # 开启后台启动
appendonly no # 关闭aof同步
# 6379主机配置
include /redis/redis.conf # 引入公共配置
pidfile /redis/pids/redis_6379.pid # 设置PID文件
port 6379 # 设置端口
dbfilename dump6379.rdb # 设置rdb文件名称
# 6380从机配置
include /redis/redis.conf # 引入公共配置
pidfile /redis/pids/redis_6380.pid # 设置PID文件
port 6380 # 设置端口
dbfilename dump6380.rdb # 设置rdb文件名称
slaveof 127.0.0.1 6379 # 配置主机信息
slave-priority:100 # 优先级
# 6381从机配置
include /redis/redis.conf # 引入公共配置
pidfile /redis/pids/redis_6381.pid # 设置PID文件
port 6381 # 设置端口
dbfilename dump6381.rdb # 设置rdb文件名称
slaveof 127.0.0.1 6379 # 配置主机信息
slave-priority:90 # 优先级
# 哨兵配置(sentinel.conf)
sentinel monitor mymaster 127.0.0.1 6379 1
####################################################
# 1、启动三台redis
# 2、查看主从复制信息:info replication
# 3、启动哨兵:redis-sentinel /redis/sentinel.conf