栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis学习(哨兵模式,缓存击穿,缓存穿透,雪崩)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis学习(哨兵模式,缓存击穿,缓存穿透,雪崩)

主机挂掉

redis 集群支持高可用性能,当一个集群的主机挂掉,其他从机输入命令

SLAVE OF NO ONE

就可以继续完成相应的任务,但是这样子也不好,因为每次重启都要自己输入命令,这样子不符合软件设计思想,那有没有一个程序代替人来完成自动监控呢?这就是Redis的哨兵机制(redis-sentinel)

哨兵是一个监听程序,他会监听redis服务器,并且在主机挂掉之后,根据一个投票算法选出新的主机模式。
哨兵模式的配置文件:

daemonize yes
pidfile "/app/redis/run/redis-sentinel.pid"
logfile "/app/redis/log/sentinel.log"
sentinel monitor redis 1217.0.0.1 6379 1

主机的配置文件

protected-mode no
port 6379
daemonize no
pidfile "/app/redis/run/redis_6379.pid"
logfile "/app/redis/log/redis.log"
dbfilename "dump.rdb"
dir "/app/redis/dat"
appendonly yes
appendfilename "appendonly.aof"
aof-use-rdb-preamble yes

从机的配置文件:

protected-mode no
port 6379
daemonize no
pidfile "/app/redis/run/redis_6379.pid"
logfile "/app/redis/log/redis.log"
dbfilename "dump.rdb"
dir "/app/redis/dat"
appendonly yes
appendfilename "appendonly.aof"
aof-use-rdb-preamble yes
replicaof 127.0.0.1 6379
缓存击穿 什么是缓存击穿

缓存击穿指的是服务起在某一阶段上疯狂的返回某一热点事件的返回包。比方说某一个热点时间过期了,突然又爆发了,直接把dao层数据库打垮了。

缓存击穿怎么怎么办 互斥锁

加锁的目的实际上是造成一种循序访问数据库的作用,以时效换稳定,这也是所谓的天下没有免费的午餐的思想,要想得到什么,则需要放弃一些什么

设置热点永不过期

顾名思义,既然有些热点过期了,导致很多访问打到数据库来了, 那么就设置,数据库不会过期不就行了,

缓存穿透 什么是缓存穿透

大量的访问不是热点的数据库,redis拦不到,就把大量的访问打到Mysql那里去了

缓存穿透怎么办
  • 使用布隆过滤器。用hashmap存访问值,算出其是不是有一定概率的存在
  • 接口校验,看看接口是不是合理,是否存在人物人为验证。
  • 空白值,当没有访问到数据的时候,就需要把访问灌进内存,用来对付接下来的访问。
缓存雪崩 什么是缓存雪崩

大量的热点数据同时失效,一下子会导致底层数据库压力增大、

缓存雪崩怎么办
  • 加锁,不让大量的请求打到数据库‘
  • 缓慢过期,不要一次性过期太多内容
  • 永不过期
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292910.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号