【发布时间】:2022-11-07 15:26:06
【问题描述】:
Ignite 可用于缓存来自其他数据库的数据。 当我们使用客户端请求一个值时,如果这个值不在缓存中,Ignite会在数据库中找到它,返回并存储在缓存中。 但是当我们通过 REST API 请求它并且 Ignite 没有在它的缓存中找到值时,它只是简单地返回 null,并且不会在数据库中查找值。 当通过 REST API 访问时,是否有一些设置支持通读,或者仅在通过客户端访问时才支持?
没有找到: http://127.0.0.1:8080/ignite?cmd=get&key=33&cacheName=PersonCache&keyType=long&valueType=long {"successStatus":0,"affinityNodeId":"33fa60c6-6dfe-4d3a-ae95-2c08c9e56f3f","sessionToken":null,"error":null,"response":null}
当通过客户端访问时,它没有找到它,而是从数据库中提取它: java -jar ignite-loader.jar 127.0.0.1 PersonCache 33 连接到点燃:127.0.0.1 连接到表:PersonCache 运行前缓存大小:2 结果查询键 33 为 3 经过时间查询:812 运行后缓存大小:3
现在才通过api找到: http://127.0.0.1:8080/ignite?cmd=get&key=33&cacheName=PersonCache&keyType=long&valueType=long {"successStatus":0,"affinityNodeId":"33fa60c6-6dfe-4d3a-ae95-2c08c9e56f3f","sessionToken":null,"error":null,"response":"3"}
【问题讨论】:
-
如果键是字符串“Mike”,键类型怎么可能是长的?
-
不好意思,我改了IP和数据,其实还有其他值
-
你有多少个节点?如果您直接请求密钥的亲和节点,此结果是否仍然存在?
-
现在我们使用一个节点。当我们使用 Java 客户端请求时,结果存储在缓存中,可以使用 REST IP 获取
-
它对我有用,你能分享更多细节吗?您使用什么缓存存储?你有复制器吗?你的点燃版本是什么?
标签: ignite