
Redis面试
Mr.VK
这个作者很懒,什么都没留下…
展开
-
【Redis】什么是缓存雪崩,如何预防缓存雪崩?
如果缓存集中在一段时间内失效,也就是通常所说的热点数据集中失效 (一般都会给缓存设定一个失效时间,过了失效时间后,该数据库会被缓存直接删除,从而一定程度上保证数据的实时性),发生大量的缓存穿透,造成大量的查询要查询数据库,这就造成了缓存雪崩,可能会导致数据库崩溃。如果缓存中间件宕机,当然可以对缓存中间件做高可用集群来避免。原创 2023-08-19 23:44:09 · 881 阅读 · 0 评论 -
【Redis】什么是缓存击穿,如何预防缓存击穿?
缓存击穿是指一个 Key 非常热点,大并发集中对这一个点进行访问,当这个Key 在失效的瞬间,持续的大并发就会穿破缓存,直接请求数据库。缓存击穿和缓存雪崩的区别在于,缓存击穿是针对某一个 Key缓存而言,缓存雪崩则是很多 Key。一般的网站很难有某个数据达到缓存击穿的级别,一般是热门网站的秒杀或爆款商品,才有可能发生这种情况。当然,这时把这种商品设置成永不过期或者过期时间超过抢购时段是一种很好的避免发生缓存击穿的方式,前提是这时应用系统不需要考虑数据可能的不一致性问题。原创 2023-08-19 23:43:29 · 672 阅读 · 0 评论 -
【Redis】什么是缓存穿透,如何预防缓存穿透?
但这样做有一定的弊端,就是当这个查询有数据时,在一定时间内得到的结果仍然是空,所以这个空结果的数据它的过期时间应该要设置得短一些,让它能得到自动剔除;空值缓存,也就保存了更多的键值,消耗了更多的内存空间,如果是外部攻击大量的空值缓存,会消耗掉所有的内存空间,导致系统崩溃。缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在,这时会去数据库查询查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,这就造成缓存穿透。简单来说,就是访问业务系统不存在的数据,就可能会造成缓存穿透。原创 2023-08-19 23:41:34 · 1052 阅读 · 0 评论