在Java中,如何从Redis hkeys(key)中获取有序的Set?

In Java, how to get an ordered Set from Redis hkeys(key)?

我将散列值保存在 redis(jedis) 中,如下所示:

然后用"Set set = jedis.hkeys(sampleKey)"得到一个set,然后用System.arraycopy转换成Array。 我检查了数组,数据的存储方式就像“01235::Test、01234::Real、01235::Real、01234::Test”。没有按顺序存储。

我需要按顺序获取数据.. 任何人都可以在这里帮助我~!谢谢。

尝试使用 TreeSet 而不是通用 Set。

你更有可能不能直接施放它,但你可以试试:

TreeSet<String> set = new TreeSet<>();

按字段排序:

set.addAll(jedis.hkeys(sampleKey));

按值排序:

set.addAll(jedis.hvals(sampleKey));

在 TreeSet 中,值是按顺序存储的。对于自定义对象,您必须实现 Comparable,但对于原语,您无需执行任何操作。

注意:记住字符串的顺序是区分大小写的,因为你使用数字没有问题,但如果你使用单词,它会把大写单词放在前面。