• ZRangeByRank
    ZRangeByRank

    返回指定bucket有序集合的排名start到end的范围(包括start和end)的所有元素。

    1. // ZAdd add items
    2. if err := db.Update(
    3. func(tx *nutsdb.Tx) error {
    4. bucket := "myZSet2"
    5. key1 := []byte("key1")
    6. return tx.ZAdd(bucket, key1, 1, []byte("val1"))
    7. }); err != nil {
    8. log.Fatal(err)
    9. }
    10. if err := db.Update(
    11. func(tx *nutsdb.Tx) error {
    12. bucket := "myZSet2"
    13. key2 := []byte("key2")
    14. return tx.ZAdd(bucket, key2, 2, []byte("val2"))
    15. }); err != nil {
    16. log.Fatal(err)
    17. }
    18. if err := db.Update(
    19. func(tx *nutsdb.Tx) error {
    20. bucket := "myZSet2"
    21. key3 := []byte("key3")
    22. return tx.ZAdd(bucket, key3, 3, []byte("val3"))
    23. }); err != nil {
    24. log.Fatal(err)
    25. }
    26. // ZRangeByRank
    27. if err := db.View(
    28. func(tx *nutsdb.Tx) error {
    29. bucket := "myZSet2"
    30. if nodes, err := tx.ZRangeByRank(bucket, 1, 2); err != nil {
    31. return err
    32. } else {
    33. fmt.Println("ZRangeByRank nodes :", nodes)
    34. for _, node := range nodes {
    35. fmt.Println("item:", node.Key(), node.Score())
    36. }
    37. //item: key1 1
    38. //item: key2 2
    39. }
    40. return nil
    41. }); err != nil {
    42. log.Fatal(err)
    43. }