1.缓存穿透的解决方法:


  1)布隆过滤器

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。

 2)流量限制

当在某一时间段服务器接收大量请求时,做流量的限制,超过某一值则启动限流模式

3)分布式缓存

减轻数据库的访问压力,当在已经查询过一次某key时,再次查询此key就不用再次查询数据库,直接在缓存中取便可

2.Redsi服务器崩了

 1)哨兵模式(选一个当主机)

当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。
能够自动后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。哨丘模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的讲程,作为讲程,它会独立运行,其原理是哨丘通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

3.缓存雪崩

当搜索一个不存在的key时,需要查询数据库,当恶意搜索太多时(数据库查无此key),需要大量查询导致缓存雪崩

1)设置查询空的key短的过期时间

2)  redis集群,即将缓存分摊给其他redis服务器,避免缓存雪崩时后果太严重

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐