redis缓存穿透-解决方案
2024-08-30 18:34:21
上面的解决方案个人觉得时有误的,因为就算缓存了value的null值,后面的接口请求还是会判断走数据库,所以看解决方案二
解决方案二:
https://blog.csdn.net/muyi_amen/article/details/80229647 参考了博客
对于数据库中不存在的key,数据库查询的值为空,也将key对应的value缓存到redis上。
查询数据库前,到redis上判断key是否存在,如果存在,直接返回value,不管是否为空,这样就不会再去查数据库,达到了缓解数据库的作用。
redisTemplate.opsForValue().set("ff", null);
System.out.println(redisTemplate.opsForValue().get("ff")); if(redisTemplate.hasKey("ff")){
System.out.println("命中");
System.out.println(redisTemplate.opsForValue().get("ff"));
return;//这样就不会再去访问数据库了。
}
System.out.println("=================未命中");
最新文章
- Nginx manifest 实现 HTML5 Application Cache
- 别再抱怨了,国内这么多优秀的Android资源你都知道吗?
- 解决getElementsByClassName的兼容性问题
- 第一次尝试用 Live Writer 写博客
- SharePoint 2013 创建web应用程序报错";This page can’t be displayed";
- Dev GridView 获取选中分组下的所有数据行 z
- js运动
- 画年利率 画图 自定义 View
- Qt编程可不可以结合其他的第三方库和本土API?(有zeroMQ的Qt封装,还可轻易使用Python的库)
- UESTC_神秘绑架案 CDOJ 881
- C# 文件下载类
- Mac下Java JDK的下载安装和配置
- 如何提高JavaScript代码质量
- 阿里云服务器挖矿wipefs处理
- kubernetes 安装学习
- group by实现原理及其作用
- MySQL 基础小技巧
- 第三章 AOP
- MongoDB 操作手冊CRUD 删除 remove
- 牛客网数据库SQL实战1-查找最晚入职员工的所有信息