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提供的CacheManager
和Cache
接口,你可以完美地在cache-through中使用它们 方式。
我是 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提供的CacheManager
和Cache
接口,你可以完美地在cache-through中使用它们 方式。