大家好,
我是L2缓存世界的新手,所以请放心吧:)。我有几个问题:
1) EhCache与JPA2.0 L2缓存的区别是什么?
据我理解,EhCache是分布式的(也可以是独立的),而JPA2.0 L2缓存不是(每个JVM)。
2)缓存策略
请分享您的缓存101策略。如何缓存集合(问题和提示)?如何在缓存池中搜索对象(如果您知道正在缓存对象)。
3)缓存和存储过程
假设数据库支持它之上的两个不同的应用程序。当一个应用程序通过存储过程更新数据,而另一个应用程序(缓存)读取数据时,如何解决更新问题?对读者来说,就好像没有更新一样。
我听说一些大网站把所有东西都藏起来了。这是否意味着他们在缓存库和JPA / ORM的基础上编写自己的数据访问层?
PS:我知道金科玉律是避免缓存早期或更好地增加硬件能力。我问这个问题是为了学习。我也不是要求一个特定的场景,而是更多的一般规则,一般场景,最低公分母,它不需要解决每个人的问题。
谢谢!
发布于 2011-01-17 09:11:51
1) EHCache是一个缓存实现。JPA2 L2是一个缓存接口。您可以使用EHCache作为JPA L2缓存提供程序。您选择的L2缓存提供程序应该完全取决于您的需求。如果你认为EHCache是最合适的,那就使用它。
2)我要把这个放在一边,因为它有点模糊。对于许多不同的场景,有许多很好的策略。
3)如果您有更新数据库而不访问缓存的内容,那么您的缓存将变得陈旧。如果这在你的领域没问题,那就好。否则,您将需要针对缓存或更新需求提出不同的解决方案,以便两者保持同步。
https://stackoverflow.com/questions/4710502
复制相似问题