0

我正在使用 infinispan 7.2.5 版本进行内存缓存。要访问我正在使用 Hotrod 的缓存。所以我有在集群模式下运行的 hotrod 服务器和可以使用 hotrod 客户端访问服务器的多个客户端。

我正在执行putAll操作以将数据放入缓存。现在我有一个要求,我们希望将所有内容或任何内容都放入缓存中,所以我的意思是 putAll 应该能够将所有数据放入缓存中,或者如果失败,则不应将任何内容添加到缓存中。我正在查看 infinispan 的文档以检查 putAll 是否是原子的,但根据文档它不是。

所以我的问题是:

  • 如何使 putAllll 原子来实现需求?

我也在考虑让 transactionMode 缓存,但不确定它是否能解决我的问题而不会对性能产生太大影响?

这里的任何建议将不胜感激。

4

1 回答 1

1

Infinispan 不支持通过 Hot Rod(*) 的事务,并且 putAll 不是原子的。它在非事务嵌入模式下也不是原子的。

最好的解决方法是使用事务运行,并从脚本执行手动启动事务。

(*) 服务器端支持已经存在,但客户端尚未实现。客户端实现在 9.3 或 9.4 的路线图上(可能会发生变化)。

于 2018-02-28T08:15:50.310 回答