我有一个Cache with cachestore,由CacheJdbcPojoStoreFactory构建。问题是:当我尝试查询缓存时,它似乎只在内存上运行(在这种情况下不应用Read-Through)。我希望看看内存是否包含。如果没有,那么它应该查询数据库(但在这种情况下,缓存永远不会知道如果它需要的所有数据都在内存上,但索引可以提供那么快)。
我是否遗漏了某些东西,或者这是它的行为?
THX
答案 0 :(得分:1)
这是正确的行为。 SQL查询不进行直读,因为键值存储中的读取只能通过密钥进行,这对于所需密钥集未知的SQL是不可能的。
话虽如此,您需要在执行之前将查询所需的所有数据都存储在内存中。您可以使用loadCache()
方法将数据批量加载到缓存中。有关详细信息,请参阅此页:https://apacheignite.readme.io/docs/data-loading#ignitecacheloadcache
同样GridGain正在开发一种新的企业功能,它可以实现您所描述的内容,但具有专有的底层磁盘存储。对于抽象持久性存储,例如关系数据库,这仍然是不可能的。