• ZRevRank

    ZRevRank

    返回有序集bucket中成员指定成员key的反向排名。其中有序集成员还是按score值递增(从小到大)顺序排列。但是获取反向排名,注意排名还是以1为开始,也就是说,但是这个时候score值最大的成员排名为1。

    1. // ZAdd
    2. if err := db.Update(
    3. func(tx *nutsdb.Tx) error {
    4. bucket := "myZSet8"
    5. key1 := []byte("key1")
    6. return tx.ZAdd(bucket, key1, 10, []byte("val1"))
    7. }); err != nil {
    8. log.Fatal(err)
    9. }
    10. if err := db.Update(
    11. func(tx *nutsdb.Tx) error {
    12. bucket := "myZSet8"
    13. key2 := []byte("key2")
    14. return tx.ZAdd(bucket, key2, 20, []byte("val2"))
    15. }); err != nil {
    16. log.Fatal(err)
    17. }
    18. if err := db.Update(
    19. func(tx *nutsdb.Tx) error {
    20. bucket := "myZSet8"
    21. key3 := []byte("key3")
    22. return tx.ZAdd(bucket, key3, 30, []byte("val3"))
    23. }); err != nil {
    24. log.Fatal(err)
    25. }
    26. // ZRevRank
    27. if err := db.View(
    28. func(tx *nutsdb.Tx) error {
    29. bucket := "myZSet8"
    30. if rank, err := tx.ZRevRank(bucket, []byte("key3")); err != nil {
    31. return err
    32. } else {
    33. fmt.Println("ZRevRank key1 rank:", rank) //ZRevRank key3 rank: 1
    34. }
    35. return nil
    36. }); err != nil {
    37. log.Fatal(err)
    38. }