• ZRemRangeByRank
    ZRemRangeByRank

    删除所有成员满足排名start到end(包括start和end)在一个指定的有序集合bucket中。其中排名以1开始,排名1表示第一个节点元素,排名-1表示最后的节点元素。

    1. if err := db.Update(
    2. func(tx *nutsdb.Tx) error {
    3. bucket := "myZSet6"
    4. key1 := []byte("key1")
    5. return tx.ZAdd(bucket, key1, 10, []byte("val1"))
    6. }); err != nil {
    7. log.Fatal(err)
    8. }
    9. if err := db.Update(
    10. func(tx *nutsdb.Tx) error {
    11. bucket := "myZSet6"
    12. key2 := []byte("key2")
    13. return tx.ZAdd(bucket, key2, 20, []byte("val2"))
    14. }); err != nil {
    15. log.Fatal(err)
    16. }
    17. if err := db.Update(
    18. func(tx *nutsdb.Tx) error {
    19. bucket := "myZSet6"
    20. key3 := []byte("key3")
    21. return tx.ZAdd(bucket, key3, 30, []byte("val2"))
    22. }); err != nil {
    23. log.Fatal(err)
    24. }
    25. if err := db.View(
    26. func(tx *nutsdb.Tx) error {
    27. bucket := "myZSet6"
    28. if nodes,err := tx.ZMembers(bucket); err != nil {
    29. return err
    30. } else {
    31. fmt.Println("before ZRemRangeByRank, ZMembers nodes",nodes)
    32. for _,node:=range nodes {
    33. fmt.Println("item:",node.Key(),node.Score())
    34. }
    35. // before ZRemRangeByRank, ZMembers nodes map[key3:0xc00008d450 key1:0xc00008d270 key2:0xc00008d360]
    36. // item: key1 10
    37. // item: key2 20
    38. // item: key3 30
    39. }
    40. return nil
    41. }); err != nil {
    42. log.Fatal(err)
    43. }
    44. if err := db.Update(
    45. func(tx *nutsdb.Tx) error {
    46. bucket := "myZSet6"
    47. if err := tx.ZRemRangeByRank(bucket, 1,2); err != nil {
    48. return err
    49. }
    50. return nil
    51. }); err != nil {
    52. log.Fatal(err)
    53. }
    54. if err := db.View(
    55. func(tx *nutsdb.Tx) error {
    56. bucket := "myZSet6"
    57. if nodes,err := tx.ZMembers(bucket); err != nil {
    58. return err
    59. } else {
    60. fmt.Println("after ZRemRangeByRank, ZMembers nodes",nodes)
    61. for _,node:=range nodes {
    62. fmt.Println("item:",node.Key(),node.Score())
    63. }
    64. // after ZRemRangeByRank, ZMembers nodes map[key3:0xc00008d450]
    65. // item: key3 30
    66. // key1 ZScore 10
    67. }
    68. return nil
    69. }); err != nil {
    70. log.Fatal(err)
    71. }