作为 Infinispan 的新手,我正在探索将 Infinispan 5.1.5 用于分布式缓存和数据存储的选项。
因此,我们的想法是不要有一个单独的数据存储即。数据库,而不是仅使用“Infinispan 缓存存储”将应用程序数据保存到磁盘文件中。
应用数据应包括但不限于事件、流程等的历史数据。
我可以只使用 Infinispan 进行数据持久性而不使用数据库吗?Infinispan 上的数据量、检索、排序等是否有任何限制?
任何输入都会有很大帮助吗?
作为 Infinispan 的新手,我正在探索将 Infinispan 5.1.5 用于分布式缓存和数据存储的选项。
因此,我们的想法是不要有一个单独的数据存储即。数据库,而不是仅使用“Infinispan 缓存存储”将应用程序数据保存到磁盘文件中。
应用数据应包括但不限于事件、流程等的历史数据。
我可以只使用 Infinispan 进行数据持久性而不使用数据库吗?Infinispan 上的数据量、检索、排序等是否有任何限制?
任何输入都会有很大帮助吗?
您可以这样做,但要准备好管理序列化格式的更改。如果您自己的类定义发生更改(假设您存储 Java 对象),您要么必须定义知道如何处理类更改的自定义 *Externalizer*s,要么必须转储数据并在升级后恢复它。此外,如果您需要升级 Infinispan 本身,您可能需要转储数据并恢复或查看滚动升级,目前需要 Hot Rod 客户端并至少使用 5.2 版。
它可以通过Infinispan Query进行排序,但请记住您没有 Join 或类似操作:适用于某些问题集,但不适用于所有问题。此外, Infinispan Query使查询方面非常强大,但在更新索引的写入操作上会降低性能:如果您可以重新考虑您的模型以使用 put/get 操作,它会更快地工作。
你可以看看Hibernate OGM来映射 Infinispan 中的结构化实体,包括关系,只使用 put/get 操作。这应该是最实用的接口,因为它使用众所周知的 JPA 映射,并且可以通过Hibernate Search使用查询(尽管与 Infinispan Query 的限制非常相似,因为它们使用基于 Lucene 的相同索引技术)。