我使用Java Redis客户端“Jedis”。
例如,当使用zrange获取有序集时,客户端指定它返回一个Set,根据定义它没有任何保证。
这个old question提到了这个问题,但我没有找到它是否已经解决的问题。
我可以这样做并知道订单会被保留吗?
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;
感谢您的帮助。
答案 0 :(得分:4)
保留订单,检查Set jedis返回的类型:它确实是一个SortedSet并且是有序的。你是对的:API没有给你它的订单提示,但你不应该害怕:它工作正常,或者我的所有应用程序都会有令人难以置信的错误。