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

  • (键,字段,值)
  • sampleKey,01234::Test,firstValue
  • sampleKey,01234::Real,secondValue
  • sampleKey,01235::Test,firstValue
  • sampleKey,01235::Real,secondValue

  • 并使用“Set set = jedis.hkeys(sampleKey)”获得一个集合,然后通过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,但是对于基元,您无需执行任何操作。

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

    关于java - 在Java中,如何从Redis hkeys(key)获取有序Set?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36494514/

    10-13 09:15