编程代码网站,建设网站 托管 费用,成都百度seo推广,wordpress实现网站的登陆功能缓存穿透
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在#xff0c;导致这些请求直接到了数据库上#xff0c;对数据库造成了巨大的压力#xff0c;可能造成数据库宕机。 常见的解决方案#xff1a;
1#xff09;缓存无效 key
如果缓存和数据库中都查不到某…缓存穿透
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在导致这些请求直接到了数据库上对数据库造成了巨大的压力可能造成数据库宕机。 常见的解决方案
1缓存无效 key
如果缓存和数据库中都查不到某个 key 的数据就写一个到 Redis 中去并设置过期时间。 SET key value EX 60这种方式可以解决请求的 key 变化不频繁的情况将无效 key 的过期时间设置短一点。
2布隆过滤器
布隆过滤器是一种由二进制向量或者说位数组和一系列随机映射函数哈希函数两部分组成的数据结构。相比于我们平时常用的 List、Map、Set 等数据结构它占用空间更少并且效率更高但是缺点是器返回的结果是概率性的而且不是非常准确的。理论情况下添加到集合中的元素越多误报的可能性就越大。并且存放在布隆过滤器的数据不容易删除。
3接口限流
根据用户或者 IP 对接口进行限流对于异常频繁的访问行为还可以采取黑名单机制例如将异常 IP 列入黑名单。
缓存空对象 优点实现简单维护方便缺点 额外的内存消耗可能造成短期的不一致 布隆过滤器 优点内存占用较少没有多余的key缺点 实现复杂存在误判可能 接口限流