Spring 写入缓存抽象 - 缓存策略背后

Spring Cache Abstraction for Write - Behind Caching Strategy

我是 Spring 缓存抽象的新手。我已经使用 ehcache 和 apache ignite 缓存提供程序对其进行了探索。

我想知道spring缓存抽象是否支持Write-behind和write-through的缓存策略

谢谢, bs

Ignite 缓存有一个 CacheStore 接口的概念,用于需要将缓存与持久存储(RDBMS、MongoDB、Hadoop 等)连接的情况。此接口提供 write-through/write-behind 和通读语义。详情请参考this documentation

我还建议您查看 various examples,它展示了 Ignite 中如何使用特定的 CacheStore 实现。这些示例在 Ignite 发行包中可用。

在声明性 Spring 抽象中没有对 cache-through 的直接支持。

并且在某种程度上它是有道理的,因为抽象允许您使用与缓存相关的注释来包围方法。但是使用 cache-through 模式,整个方法将只是缓存交互:get 用于读取,或 put 用于写入。不是注释抽象的 if-then-else。

但是,如果你直接在代码中使用Spring提供的CacheManagerCache接口,你可以完美地在cache-through中使用它们 方式。