如何使用SpringCache进行缓存数据库查询
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章给大家分享的是有关如何使用SpringCache进行缓存数据库查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringCache进行缓存数据库查询1、在Spr
千家信息网最后更新 2025年01月20日如何使用SpringCache进行缓存数据库查询
这篇文章给大家分享的是有关如何使用SpringCache进行缓存数据库查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
SpringCache进行缓存数据库查询
1、在SpringBoot的启动类上添加注解@EnableCaching
开启SpringCache缓存支持
@SpringBootApplication// 开启SpringCache缓存支持@EnableCachingpublic class GatheringApplication { public static void main(String[] args) { SpringApplication.run(GatheringApplication.class, args); }}
2、在service的方法上添加对应的注解
/** * 根据ID查询 * * @param id * @return */// 使用SpringCache进行缓存数据库查询@Cacheable(value = "gathering", key = "#id")public Gathering findById(String id) { return gatheringDao.findById(id).get();}/** * 修改 * * @param gathering */// 修改数据库数据后需要删除redis中的缓存@CacheEvict(value = "gathering", key = "#gathering.id")public void update(Gathering gathering) { gatheringDao.save(gathering);}/** * 删除 * * @param id */// 删除数据库数据后需要删除redis中的缓存@CacheEvict(value = "gathering", key = "#id")public void deleteById(String id) { gatheringDao.deleteById(id);}
SpringCache 数据库一致性问题
缓存和数据库不一致的问题
先更新数据库,再更新缓存
先更新数据库更新成功了,但是更新redis的时候失败了,这就导致了数据库和Redis里面的数据不一致,
解决办法
先更新缓存,再更新数据库,更新缓存的时候,先删除缓存,再去更新数据库,再添加缓存 这样的话即使缓存更新失败了 缓存里面的数据也被删了,如果删除缓存都失败的话,就不更新数据库了,直接抛异常解决,这时候如果后面一个加入缓存失败的话只是增加了一次查询数据库的操作而已(下一次查这个数据的时候把他加入缓存)
高并发下redis和数据库不一致问题
如果这这两个操作刚好在中间虚线部分那么缓存里面的数据和数据库里面的数据就不一样了,这个时候我们要解决这个问题就得引入分布式锁
感谢各位的阅读!关于"如何使用SpringCache进行缓存数据库查询"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数据
缓存
数据库
更新
查询
一致
时候
问题
内容
更多
注解
篇文章
支持
不错
实用
成功
这样的话
一致性
两个
分布式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
app软件开发团队平台
服务器怎么防止病毒入侵
晋城网络技术质量
魔兽世界鱼人服务器比例
一个网络技术团队的人员配备
大数据库保存时间
河北数据网络技术服务标准
日本那一年组建政府网络安全
计算机考试网络技术考什么
四川托育管理系统软件开发
讲网络安全法的思路
数据库和系统的连接方式
盈鼎网络技术有限公司
从四方面体系化推进网络安全工作
顺德网络安全价格
直销分销系统软件开发
主角做软件开发的小说
软件开发职业有哪些条件
中国高科技互联网企业名单
谷游网络技术
什么是计算机网络安全项目论证
软件开发三大方向
sql命令删除数据库后怎么恢复
数据库怎么关联两个表格
金华市网络安全知识答案
第四次学科评估网络安全排名
软件开发实习期 被辞退
软件开发与运维的区别
计算机网络安全威胁分类
ie软件开发接单平台