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. }