答案 0 :(得分:1)
旧版本的cache2k已经启动了持久性支持。它正在运行,但是,它从未达到我完全信任生产的水平。
实际问题是clear()
操作,它的实现非常复杂。无论存储实现需要一些时间来删除数据,清除应该很快。因此,我的想法是切换到回写方案,其中操作排队并在存储再次可用时执行。实现部分回写方案仅仅是为了明确,是一些过度工程......
目前我从功能集中删除了持久性,因为我不想要一个具有稳定API的1.0版本并且已经提供了许多有用的功能。
正如您在cache2k主页上的路线图中所看到的,当前的计划是首先添加批量和异步功能,然后返回存储。在异步功能完成后,存储接口可能看起来完全不同。
在当前的cache2k实现中,仍然存在将连接存储的接口,因此我不会完全放弃已经实现的内容。 flush()
和purge()
仍有一些残余。所以我最好为1.0版本删除这两种方法,以避免混淆。
顺便说一句:自从我在Guava上看到你的问题以来,cache2k支持CacheWriter
,CacheLoader
是cache.contains(...)
的对应物。使用缓存加载器和编写器,您可以自己读取和写入存储,但它与缓存本身内的存储支持不同。例如.blink {
-webkit-animation-name: blink;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: cubic-bezier(1.0, 0, 0, 1.0);
-webkit-animation-duration: 1s;
}
将检查存储,但它至少根据JSR107以及我所知道的每个缓存实现都不检查缓存加载器。