数据库|Redis
redis,缓存雪崩,缓存穿透
数据库-Redis
关于我们 源码,ubuntu cp重命名,tomcat网站端口访问,逊克爬虫防治,php 内部接口设计,常州百度seo关键词优化案例lzw
Redis缓存穿透和雪崩的解决方法
玩商业源码,ubuntu14.1 源,爬虫小项目介绍,php和mfc,平原seo优化lzw
A、缓存穿透
站长源码是什么意思,ubuntu鼠标悬浮设置,python爬虫如何实现,php $ 赋值,年度规划seolzw
当用户查询的key在redis中不存在,对应的id在数据库也不存在,此时被非法用户进行攻击,大量的请求会直接打在db上,造成宕机,从而影响整个系统,这种现象称之为缓存穿透。
解决方案一:把空的数据也缓存起来,比如空字符串,空对象,空数组或list,代码如下
if (list != null && list.size() > 0) {redisOperator.set("subCat:" + rootCatId, JsonUtils.objectToJson(list));} else {redisOperator.set("subCat:" + rootCatId, JsonUtils.objectToJson(list), 5*60);}
解决方案二:布隆过滤器
B、Redis缓存雪崩
缓存雪崩:缓存中的数据大批量失效,然后这个使用又要大量的请求进来,但是由于redis中的key全部失效了所有会全部请求到db上,造成宕机
解决方案