出于学习目的,我正在研究 Java 中的 2 级缓存实现。我有 2 个级别:RAM 是第一,FS 是第二。我为我的实施选择了 LRU 策略,并在两个级别之间选择了“回写”策略。您能否澄清一下:
如果对象更改其内部状态,是否可以使存储在第二级(文件系统)中的对象保持最新?2级缓存是正常的做法吗?
如果我只知道对象是对象类型,我如何将我的对象(序列化)以二进制形式写入文件?是否有可能或者我必须要求对象应该实现可序列化?
编辑:
实际上,关于内部状态的问题是——我怎样才能实现它?
是的,您可以说在您的应用程序中拥有二级缓存是一种正常的做法,至少我可以根据我的经验这么说。有关更多信息,您可以在此处参考 java 规范。
我们还在我们的应用程序中实现了二级缓存,以提高所有数据库读取操作的性能。为了实现这一点,我们使用了Ehcache API,我们发现在我们的应用程序中与 Spring 集成非常容易,因为它在 Spring 框架上运行。