ZRank

返回有序集bucket中成员指定成员key的排名。其中有序集成员按score值递增(从小到大)顺序排列。注意排名以1为底,也就是说,score值最小的成员排名为1。
这点和Redis不同,Redis是从0开始的。

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