1、基本数据类型
1、string类型
2、hash类型
3、list类型
4、set类型
5、zset类型
2、缓存击穿、缓存穿透、缓存雪崩
1、缓存击穿:key值访问太多,失效后直接访问数据库
解决方案:加锁,只有一个线程访问数据库
2、缓存穿透:大量的请求绕过缓存访问数据库
解决方案:布隆过滤器或者自己设置请求条件
3、缓存雪崩:大量的key同时失效
解决方案;随机设置不用的时间
3、redis持久化
1、aof持久化,通过日志来存储每个操作,追加到aof文件末尾,redis默认不开启aof
优点:数据的一致性和完整性更高,秒级数据丢失
缺点:相同的数据集,aof文件体积大于rdb文件,数据恢复也比较慢
2、rdb持久化,就是吧内存数据以快照形式保存到磁盘上,和aof相比,它记录的是某一时刻的数据,不是操作。
优点:恢复大数据集速度更快,适合大规模的数据恢复,备份,全量复制等。
缺点:没有办法做点实时持久化
Redis4.0开始支持rdf和aof的混合持久化,就是内存快照一一定频率执行,两次快照之间再用aof记录这段时间的命令操作。
4、redis的过期策略
1、定时过期
每个设置过时间的key都会创建一个定时器,到期了会清楚key,这个策略对内存很多但是很占用cpu资源,从而影响相应时间和吞吐量
2、惰性过期
只有使用的时候才会判断可以时候过期,过期则清楚,这样对cpu占用很少资源,但是会占用很大的内存
3、定期过期
每过一段时间会扫描一定数据的key值,过期的删除,
redis同时使用了惰性过期和定期过期
5、redis速度快的原因
1、内存存储
2、单线程
3、多路复用
网友评论