Redis持久化
- 方法一:RDB持久化
主要通过在指定的时间间隔内将缓存中的数据写入到磁盘,用二级制压缩存储(保存完整,但一旦故障影响大) - 方法二:AOF持久化
主要是通过存储操作命令,类似于日志的形式记录存储,可以通过配置达到实时存储,并且拥有减半压缩机制(更加持久)
Redis穿透概念
-
Redis击穿:击穿就是指在程序运行过程中,一个热门Key失效,大量请求会直接访问我们的DB,导致DB压力很大(解决方式:对热门数据不设置过期时间,等热度过去在设置,互斥锁)
-
Redis穿透:指有人故意访问不存的key,并且发送大量请求不存在key,导致缓存没有去数据库取,但数据库也不存在,所以这种情况容易导致数据库死机(解决方式:加锁,拦截机制,设置不存的key返回null空)
- Redis雪崩:雪崩就是指突然大量的热门key同时失效,这样也导致很大的访问请求去数据库(DB),导致数据库压力大(解决方法:对不同的热门数据设置不同的随机过期时间)
Redis淘汰和删除策略
1、定期删除
定期随机删除过期的key,导致会有漏网之鱼
2、惰性删除
当使用某key时,在去判断此key是否已经过期
3、内存淘汰机制
① Volatile-lru(推荐):最近最少使用
② Volatile-ttl : 从将要过期的key中选择将要删除的key(ttl值越大优先删除),LRU淘汰机制
③ volatile-random:在已经设置过期时间key中随机删除,当无法存入新的key,则进行随机移除某个key