使用jedis恢复排序的集合时,集合中是否保留订单?

Dar*_*ren 5 java redis jedis

我使用Java Redis客户端“ Jedis”。

例如,当使用zrange获取排序的集合时,客户端指定它返回一个Set,根据定义,该集合没有排序保证。

这个老问题提到了问题,但我没有找到是否解决的参考。

我可以这样做,知道订单会被保留吗?

Set<String> results = jedisCli.zrange(key, start, end);
MyObject[] requestedOrderedObjects = new MyObject[results.size];
int i = 0;
foreach(String result: results) {
    requestedOrderedObjects[i++] = MyObject.loadFromString(result);
}
return requestedOrderedObjects;
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助。

zen*_*eni 6

顺序被保留,检查 Set jedis 返回的类型:它确实是一个 SortedSet 并且它是有序的。你是对的:API 没有给你它被订购的提示,但你不应该害怕:它工作正常,否则我的所有应用程序都会有令人难以置信的错误。