概述
基于:【狂神说Java】Redis最新超详细版教程通俗易懂
目录
- 1 集群节点划分
- 2 从节点redis.conf配置
- 3 哨兵模式
- 3.1 sentinel.conf配置文件
- 3.2 启动哨兵进程
- 3.3 知识点总结
- 4 缓存穿透
- 5 缓存击穿
- 6 缓存雪崩
1 集群节点划分
是指将一台Redis服务器(主节点)的数据复制到其他Redis服务器(从节点);数据是单向的,只能由主节点到从节点;主节点以写为主,从节点以读为主;
- 配置只用配置从节点,不用配置主节点(默认都是主节点);
- 主节点可写可读,从节点只能读不能写,主节点的写会自动同步到从节点;
2 从节点redis.conf配置
# 主节点的ip和端口
replicaof 127.0.0.1 6379
# 主节点的密码
masterauth 123456
查看当前配置:INFO REPLICATION
里面的role:master
就是当前节点的角色;
3 哨兵模式
当主节点宕机之后,如果不采取任何措施,从节点一直存在,但无法工作,浪费资源;使用哨兵模式可以采用投票法,自动选取一个从节点变为一个新的主节点;哨兵进程也宕机了怎么办?可以配置多个哨兵;
3.1 sentinel.conf配置文件
# 哨兵进程的端口
port 26379
# 守护进程,后台运行
daemonize yes
# 日志文件
logfile "sentinel.log"
# 目录
dir "./"
# 默认主机的名字、ip和端口,最后一个值表示多少个哨兵认为主节点宕机是真的宕机了
sentinel monitor mymaster 192.168.1.1 6379 1
# 多少毫秒之后认为主节点宕机了
sentinel down-after-milliseconds mymaster 30000
# 节点名的密码
sentinel auth-pass mymaster 123
3.2 启动哨兵进程
sudo redis-sentinel sentinel.conf
3.3 知识点总结
- 如果主节点宕机,哨兵捕捉到信息记录,一段时间阈值之后,就投票法选择一个丛节点当新的主节点;
- 当原主节点恢复之后,挂在到集群当从节点;
4 缓存穿透
缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。
解决办法:
- 接口层增加校验;
- 存储层不命中时,缓存中存放空对象,同时设置过期时间(因为,可能在过期时间内写入了)
5 缓存击穿
缓存击穿是指某一并发数据缓存到期时,缓存中没有数据,大量请求涌入数据库,造成数据库压力过大;
解决办法:
- 设置缓存不过期;
- 加互斥锁,限流去查询;
6 缓存雪崩
缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。
解决办法:
- 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。
- 如果缓存数据库是分布式部署,将热点数据均匀分布在不同搞得缓存数据库中。
- 设置热点数据永远不过期。
最后
以上就是复杂酒窝为你收集整理的Redis(六)主从复制、哨兵模式和缓存穿透、击穿、雪崩1 集群节点划分2 从节点redis.conf配置3 哨兵模式4 缓存穿透5 缓存击穿6 缓存雪崩的全部内容,希望文章能够帮你解决Redis(六)主从复制、哨兵模式和缓存穿透、击穿、雪崩1 集群节点划分2 从节点redis.conf配置3 哨兵模式4 缓存穿透5 缓存击穿6 缓存雪崩所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复