Redis淘汰策略
Redis中设置最大使用内存,当内存数据集达到阈值时,redis将对内存数据进行淘汰,
淘汰规则有6种:
1,volatile_lru, 最近最少使用,已设置过期时间的数据集中挑选进行淘汰
2,volatile-ttl, 已设置过期时间的数据中即将过期的进行淘汰
3,volatile-random, 对设置过期时间的数据集中随机淘汰
4,allkey-lru,对所有数据,挑选最近最少使用的进行淘汰
5,allkey-random,所有数据随机淘汰
6,non 禁止淘汰
缓存穿透 和 缓存雪崩
缓存穿透
是指 当再缓存中查询一个不存在的数据时,查不到会去数据库查询并缓存。而数据库中也不存在,每次获取缓存时都会去数据库中查询,这种情况就是缓存穿透
解决方案,对于数据库中查询不到的数据也进行缓存,缓存一个空值。
缓存雪崩
大量同时间的的缓存更新造造成数据库大量并发查询,导致数据库阻塞。即为缓存雪崩。
缓存更新加锁
均匀分布缓存更新时间
上线前进行缓存预热