在 RedissonClient.getSet( "my-set" ).size() 返回一个数字后,为什么该集合在下次运行之前显示为空?



我有一组字符串通过Redisson存储在Redis中。 当我使用 Redisson 获取集合时,如果我在集合上调用 size(((它返回一个指示其大小的正整数,从而指示集合中有项目(,然后(之后(尝试获取迭代器并从集合中读取,它现在似乎包含零元素。 如果我停止我的应用程序,然后重新启动它,如果我跳过获取集合的大小,只获取迭代器,那么我可以循环访问数据。 我尝试在应用程序启动时获取集合,并在整个执行过程中保留引用,并且我还尝试每次使用客户端获取集合,但两种方法的行为相同。

那么如何获取集合的基数,然后让迭代器通读集合呢?

因此,出于某种原因,我决定在单服务器模式下配置我的客户端,并且操作按照我期望的方式工作。 我可以得到集合的基数,然后毫无问题地遍历集合。 所以从节点一定存在一些配置问题。 但我想知道的是,为什么它第一次始终有效,下一次始终失败。 也就是说,我总是可以先得到集合大小,或者我总是可以先迭代集合,然后下一个操作总是意味着集合是空的。 所以,我知道配置不正确的从属节点会导致问题,但奇怪的是,当出现问题时,它的行为如此一致

最新更新