是否默认启用休眠二级缓存?我没有为它配置任何东西,org.hibernate.cfg.Configuration所以这是否意味着它没有被使用。如果我确实想使用它,可能会以增加内存使用为代价来提高性能,或者它只是使用磁盘空间。使用数据库的主要原因之一是我的应用程序可以扩展并且不需要越来越多的内存。
1 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
是否默认启用休眠二级缓存?
它不是。二级缓存是一个单独的缓存库,您需要将其添加为依赖项并对其进行配置,例如 EHCache、hazelcast、cache2k...
如果我确实想使用它,可能会以增加内存使用为代价来提高性能,或者它只是使用磁盘空间。
用更多的内存来换取较低的外部请求是缓存的本质。根据您的应用程序,这可能会产生不同的效果。如果您的应用程序请求某些行的频率并不比其他行更频繁,并且您有大量数据,则缓存可能会适得其反。然而,这是非常罕见的。
您可以限制缓存使用的内存量,因此一旦满了,使用的内存将相当稳定。
使用数据库的主要原因之一是我的应用程序可以扩展并且不需要越来越多的内存。
“规模”意味着不同的东西。这可能意味着您的应用程序需要处理越来越多的数据,也可能意味着您的应用程序需要处理越来越多的用户。或两者。缓存可帮助您处理更多用户并以更低的延迟处理请求,从而改善您的用户体验。
对于较小的缓存大小,您的内存消耗可能会更低。由于从数据库请求数据的活动较少,因此 VM 中的 GC 活动较少,需要的数据库连接和其他资源也较少。
我的建议:
我的经验表明,即使是非常小的缓存,比如 1000 个条目,也会产生很大的影响。这是因为 99% 的应用程序都有一些经常被请求的数据热点。在不了解您的应用程序的情况下,无法从理论层面回答您的问题。最好的方法就是尝试一下。
添加回答
举报
0/150
提交
取消