赞
踩
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,导致这些请求直接到了数据库上,对数据库造成了巨大的压力,可能造成数据库宕机。
常见的解决方案:
如果缓存和数据库中都查不到某个 key 的数据就写一个到 Redis 中去并设置过期时间。
SET key value EX 60
,这种方式可以解决请求的 key 变化不频繁的情况,将无效 key 的过期时间设置短一点。
布隆过滤器是一种由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的 List、Map、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是器返回的结果是概率性的,而且不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且存放在布隆过滤器的数据不容易删除。
根据用户或者 IP 对接口进行限流,对于异常频繁的访问行为,还可以采取黑名单机制,例如将异常 IP 列入黑名单。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。