dw个人网站制作教程,交互式网站是什么,wordpress登陆密码,松江网站建设培训费用缓存穿透 #xff1a;缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在#xff0c;这样缓存永远不会生效#xff0c;这些请求都会打到数据库。
常见的解决方案有两种#xff1a; 缓存空对象 优点#xff1a;实现简单#xff0c;维护方便 缺点#xff1a; 额外…缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在这样缓存永远不会生效这些请求都会打到数据库。
常见的解决方案有两种 缓存空对象 优点实现简单维护方便 缺点 额外的内存消耗 可能造成短期的不一致 布隆过滤 优点内存占用较少没有多余key 缺点 实现复杂 存在误判可能 缓存空对象思路分析当我们客户端访问不存在的数据时先请求redis但是此时redis中没有数据此时会访问到数据库但是数据库中也没有数据这个数据穿透了缓存直击数据库我们都知道数据库能够承载的并发不如redis这么高如果大量的请求同时过来访问这种不存在的数据这些请求就都会访问到数据库简单的解决方案就是哪怕这个数据在数据库中也不存在我们也把这个数据存入到redis中去这样下次用户过来访问这个不存在的数据那么在redis中也能找到这个数据就不会进入到缓存了 布隆过滤布隆过滤器其实采用的是哈希思想来解决这个问题通过一个庞大的二进制数组走哈希思想去判断当前这个要查询的这个数据是否存在如果布隆过滤器判断存在则放行这个请求会去访问redis哪怕此时redis中的数据过期了但是数据库中一定存在这个数据在数据库中查询出来这个数据后再将其放入到redis中
假设布隆过滤器判断这个数据不存在则直接返回
这种方式优点在于节约内存空间存在误判误判原因在于布隆过滤器走的是哈希思想只要哈希思想就可能存在哈希冲突 小总结
缓存穿透产生的原因是什么 用户请求的数据在缓存中和数据库中都不存在不断发起这样的请求给数据库带来巨大压力
缓存穿透的解决方案有哪些 缓存null值 布隆过滤 增强id的复杂度避免被猜测id规律 做好数据的基础格式校验 加强用户权限校验 做好热点参数的限流