我是靠谱客的博主 复杂酒窝,最近开发中收集的这篇文章主要介绍Redis(六)主从复制、哨兵模式和缓存穿透、击穿、雪崩1 集群节点划分2 从节点redis.conf配置3 哨兵模式4 缓存穿透5 缓存击穿6 缓存雪崩,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于:【狂神说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为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大

解决办法:

  1. 接口层增加校验;
  2. 存储层不命中时,缓存中存放空对象,同时设置过期时间(因为,可能在过期时间内写入了)

5 缓存击穿

缓存击穿是指某一并发数据缓存到期时,缓存中没有数据,大量请求涌入数据库,造成数据库压力过大

解决办法:

  1. 设置缓存不过期;
  2. 加互斥锁,限流去查询;

6 缓存雪崩

缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

解决办法:

  1. 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。
  2. 如果缓存数据库是分布式部署,将热点数据均匀分布在不同搞得缓存数据库中。
  3. 设置热点数据永远不过期。

最后

以上就是复杂酒窝为你收集整理的Redis(六)主从复制、哨兵模式和缓存穿透、击穿、雪崩1 集群节点划分2 从节点redis.conf配置3 哨兵模式4 缓存穿透5 缓存击穿6 缓存雪崩的全部内容,希望文章能够帮你解决Redis(六)主从复制、哨兵模式和缓存穿透、击穿、雪崩1 集群节点划分2 从节点redis.conf配置3 哨兵模式4 缓存穿透5 缓存击穿6 缓存雪崩所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部