在 RedissonClient.getSet("my-set").size() returns 一个数字之后,为什么集合在下一个 运行 之前看起来是空的?
After RedissonClient.getSet("my-set").size() returns a number, why does the set appear to be empty until next run?
我有一组字符串通过 Redisson 存储在 Redis 中。当我使用 Redisson 获取集合时,如果我在集合上调用 size() (returns 一个正整数,表示它的大小,从而表明集合中有项目),然后(之后)尝试获取迭代器并从集合中读取,它现在似乎包含零个元素。如果我停止我的应用程序,然后重新启动它,如果我跳过获取集合的大小而只获取迭代器,那么我可以迭代数据。我试过在应用程序启动时获取集合,并在整个执行过程中保留引用,我也尝试过每次都使用客户端获取集合,但这两种方法的行为是相同的。
那么如何获取集合的基数,然后获取迭代器来读取集合?
因此,出于某种原因,我决定在单服务器模式下配置我的客户端,并且操作按照我预期的方式进行。我可以获得集合的基数,然后毫无问题地遍历集合。所以肯定是slave节点配置有问题。但我想知道的是,为什么它在第一次 时始终有效,而在下一次 时一直失败。也就是说,我总是可以先得到集合的大小,或者我总是可以先迭代集合,然后下一个操作总是暗示集合是空的。所以,我知道不正确配置的从节点会导致问题,但奇怪的是它在出现问题时如此一致。
我有一组字符串通过 Redisson 存储在 Redis 中。当我使用 Redisson 获取集合时,如果我在集合上调用 size() (returns 一个正整数,表示它的大小,从而表明集合中有项目),然后(之后)尝试获取迭代器并从集合中读取,它现在似乎包含零个元素。如果我停止我的应用程序,然后重新启动它,如果我跳过获取集合的大小而只获取迭代器,那么我可以迭代数据。我试过在应用程序启动时获取集合,并在整个执行过程中保留引用,我也尝试过每次都使用客户端获取集合,但这两种方法的行为是相同的。
那么如何获取集合的基数,然后获取迭代器来读取集合?
因此,出于某种原因,我决定在单服务器模式下配置我的客户端,并且操作按照我预期的方式进行。我可以获得集合的基数,然后毫无问题地遍历集合。所以肯定是slave节点配置有问题。但我想知道的是,为什么它在第一次 时始终有效,而在下一次 时一直失败。也就是说,我总是可以先得到集合的大小,或者我总是可以先迭代集合,然后下一个操作总是暗示集合是空的。所以,我知道不正确配置的从节点会导致问题,但奇怪的是它在出现问题时如此一致。