1.什么是主从复制
主机数据更新后根据配置和策略,自动同步到备机的Master/Slaver,Master 以写为主,Slave以读为主
读写分离的优点
1.读写分离,性能提高
2.容灾快速恢复
查看主机运行情况:
info replication
注意
主服务器,每新增一台从服务区,都会将 自己服务器的所有key 同步到 从服务器中
复制原理
- 当从连接上主服务器后,从服务器向主服务器发送进行数据同步消息
- 主服务器接到从服务器发送过来同步数据,主服务器进行持久化到rdb文件中,把rdb文件发送从服务器,从服务器拿到rdb进行读取 (从服务只会在第一次连接到服务器会主动同步数据)
- 每次主服务器进行写操作之后,和从服务器进行数据同步(主服务主动同步数据)
薪火相传
就类似于: 老师给班长说要收语文作业,然后班长和各组组长说要收作业,组长再去收同学们的作业
反客为主(手动版)
SLaveOf no one 可以将从机变成主机
哨兵模式(反客为主的自动版)
注意:redis配置文件中 的 replica-priority 值越小,优先级越高
- 新增配置文件,文件名:sentinel.conf
senttinel monitor 主服务名称(可以随便定义) 主服务器port 主服务端口 需要从服务同意数量 - 启动配置文件
redis-senttinel sentinel.conf - 显示页面
复制延迟
由于所以的写都是由master 服务器 上操作,然后同步更新到Slave 上,所有从Mater同步到一个Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题很更佳严重,Slave机器数量的增加也会使这个问题更加严重。Redis 的缓存穿透
- 服务器的访问量突然增加了
- 去redis中查询不存在的数据,导致redis 命中率降低了
- 然后到数据库中去访问,因为访问量的增加导致数据库宕机
意思:服务器突然来了很多访问量,并且同时去redis 中 查询一个不存在的东西,因为redis 中不存在,然后就去数据库中查询,然后大量的请求导致数据库,直接宕机了
Redis的缓存击穿
- 这个key 的访问量非常的大
- 然后这个 key 突然失效了,然后导致所有的请求都到数据库中去了
- 最后导致 数据库访问量增加了 ,导致服务器 宕机了
Redis 缓存雪崩
在某一个时间段内,redis 中 大量的key 过期,导致 数据库 访问量过大,导致应用服务器崩溃