hibernate的load能否直接查询数据库,而不是缓存?

hibernate的load能否直接查询数据库,而不是缓存?,第1张

程序的 *** 作时这样的:

1.先从数据库load一个id为固定值的记录;

2.修改这个记录

3.update到数据库

4.从数据库里再load相同id的记录,来判断是否已经更新到数据库。

上面会出现:第4步判断已经更新到数据库,当数据库繁忙的时候,实际并没有实际update到数据库,而再次load的时候是获取到缓存中的记录,导致判断已经更新到数据库中,而实际在后来查询数据库发现这笔记录并没有更新

内存数据库有现成的redis,高效存取键值对,键设为你的查询条件,值设为你的查询结果转为字符串

查询时先从redis取,没有再查数据库,并且设置redis的过期时间,这种方式需要项目对实时性要求不高,这样你才能用缓存,而且如果你的项目没有明显的热点,即没有某些内容确定会多次被查到,那你缓存就不会命中,添加缓存反而影响你得速度

redis是一种nosql的内存数据库,感兴趣你可以了解一下,优点就是性能强劲

数据查询请求多就把结果缓存下来,你查数据库再快也没有直接把结果从内存读出来快

同样的sql请求只有第一次查数据库,之后通通读内存

或者你干脆借助这种思想,创建一个全局的map对象,然后查询条件作key

,结果作value,就省去了了解redis的过程,把整个数据库装内存不太科学,你有多少条数据啊


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10067011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存