问题描述
我正在使用redisson 3.12.5
我有此地图“ REMOTE_SESSIONS”,我正在尝试使用getMapCache(RMapCache)访问它 提取地图后,我正在使用keySet查询它的keys,但是我看到了不一致的行为,并且不确定为什么。
我可能错误地使用了库,但这让我发疯了:)
这是我的代码
List<RMapCache> cacheList = new ArrayList<>();
int count = 10;
// get 10 caches
for (int i = 0; i < count; i++) {
cacheList.add(redissonClient.getMapCache("REMOTE_SESSIONS",StringCodec.INSTANCE));
}
// for each one of them print the keyset
for (int i = 0; i < count; i++) {
Set set = cacheList.get(i).keySet(100);
Iterator iterator = set.iterator();
int actualCount = 0;
while (iterator.hasNext()){
iterator.next();
actualCount++;
}
System.out.println("COUNT (from size) = " + set.size() + " - COUNT (actual) = " + actualCount);
}
我正在执行以下操作:
获取10个REMOTE_SESSIONS高速缓存实例。对于它们中的每一个,都打印按大小指定的计数,然后打印通过迭代遍历检索的实际计数。
我得到以下输出:
COUNT (from size) = 23 - COUNT (actual) = 23
COUNT (from size) = 23 - COUNT (actual) = 4
COUNT (from size) = 23 - COUNT (actual) = 4
COUNT (from size) = 23 - COUNT (actual) = 4
COUNT (from size) = 23 - COUNT (actual) = 4
COUNT (from size) = 23 - COUNT (actual) = 4
COUNT (from size) = 23 - COUNT (actual) = 23
COUNT (from size) = 23 - COUNT (actual) = 23
COUNT (from size) = 23 - COUNT (actual) = 23
COUNT (from size) = 23 - COUNT (actual) = 23
由于某些原因,keySet的实际内容是变化的。这可能与以下事实有关:在幕后使用HSCAN实施该操作,但无法真正说明原因。
知道为什么会发生这种情况,我可以从地图中访问密钥吗?
我的最终目标是使用一种模式来查询键,但这也不是一致的。
任何帮助将不胜感激。 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)