Redis持久化机制,内存淘汰机制,主从、哨兵模式,常见高并发缓存问题及解决方案

1、Redis持久化机制:

        Redis持久化机制有两种,RDB快照和AOF日志记录,其中RDB是Redis默认的持久化机制,它是在某个时间点上对Redis中缓存的数据进行数据备份,是一个周期性的持久化。AOF日志记录,即AOF会对每条写入的命令做记录,保存到日志里面,可以进行每秒同步一次。一般情况下会同时开始两种持久化机制,用AOF保证数据不丢失,作为数据恢复的第一选择,并用RDB来做不同程度的冷备份,使用RDB进行数据的快速恢复。

2、Redis的内存淘汰机制

Redis的内存淘汰机制主要有四种

LRU:对最近很少使用的数据进行淘汰,与时间和频次有关;

LFU:对最不经常使用的数据进行淘汰,与频次有关;

TTL:对设置了过期时间的数据进行淘汰;

Random:随机淘汰。

3、Redis集群中的主从模式和哨兵模式

        主从模式:数据库分为主库和从库,一个主库,即Master节点,可以拥有多个从库,即Slave节点。主库可以进行读写操作,而从库只能进行读。主库操作数据会将数据同步到从库,数据的同步是单向的,只能从主库同步到从库,所以从库只能进行读。Master节点挂了之后,不会影响Slave节点的读,但是也不会在Slave节点里选举出一个新的Master节点出来。

        哨兵模式:它是在主从模式的基础上又多了一个哨兵节点。哨兵相当于所有节点的管家,能够监听其他节点的状态,它实现了节点的自动故障转移。也就是说哨兵节点会监听主节点和从节点是否正常运行,当主节点不能正常工作的时候,它会进行自动故障转移,将一个从节点升级为主节点,并让其他从节点改为复制这个新的主节点。

4、Redis缓存雪崩、缓存穿透、缓存击穿

        缓存雪崩:在同一个时间段内缓存大面积失效,导致大量请求落到数据库上,数据库短时间内承受不住大量请求而奔溃造成雪崩。

        一般这种情况可能是因为请求过多,或者是因为Redis中不同的key在某个时间同时过期。

        解决方案:事前可以给Redis做主从和哨兵,保证Redis的高可用;给不同的key设置不同的过期时间;通过Hystrix或Sentinel对请求进行限流降级操作;事后可以通过Redis持久化机制进行数据恢复。

        缓存穿透(请求的key缓存中没有):一般是恶意攻击,请求的key不存在Redis里面,这样请求就会直接穿透缓存这一层,作用到数据库上。

        解决方案:可以通过布隆过滤器,先把缓存中存在的key保存到布隆过滤器里面,当请求过来的时候先通过布隆过滤器进行过滤,如果布隆过滤器里面没有对应的key,就直接返回错误信息,如果请求的key存在布隆过滤器里面,就继续访问缓存,再访问数据库。

        缓存击穿:高并发的请求访问热点的key,这时候key过期了,或者Redis承受不住高并发而奔溃,就会导致大量请求击穿缓存作用到数据库上。

        解决方案:给Redis中的热点数据设置永不过期;对接口进行限流降级操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值