From 9c352f8e3c79a96e14dbac32e26055d02438af49 Mon Sep 17 00:00:00 2001 From: Andy Stark Date: Wed, 11 Sep 2024 12:55:23 +0100 Subject: [PATCH 1/2] DOC-4229 added sorted set doc examples --- doctests/ss_tutorial_test.go | 418 +++++++++++++++++++++++++++++++++++ 1 file changed, 418 insertions(+) create mode 100644 doctests/ss_tutorial_test.go diff --git a/doctests/ss_tutorial_test.go b/doctests/ss_tutorial_test.go new file mode 100644 index 000000000..e2c367cf1 --- /dev/null +++ b/doctests/ss_tutorial_test.go @@ -0,0 +1,418 @@ +// EXAMPLE: ss_tutorial +// HIDE_START +package example_commands_test + +import ( + "context" + "fmt" + + "github.com/redis/go-redis/v9" +) + +// HIDE_END +func ExampleClient_zadd() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + // STEP_START zadd + res1, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Norem", Score: 10}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res1) // >>> 1 + + res2, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Castilla", Score: 12}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res2) // >>> 1 + + res3, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + redis.Z{Member: "Sam-Bodden", Score: 8}, + redis.Z{Member: "Royce", Score: 10}, + redis.Z{Member: "Ford", Score: 6}, + redis.Z{Member: "Prickett", Score: 14}, + redis.Z{Member: "Castilla", Score: 12}, + ).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res3) // >>> 4 + // STEP_END + + // Output: + // 1 + // 1 + // 4 +} + +func ExampleClient_zrange() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + _, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + redis.Z{Member: "Sam-Bodden", Score: 8}, + redis.Z{Member: "Royce", Score: 10}, + redis.Z{Member: "Ford", Score: 6}, + redis.Z{Member: "Prickett", Score: 14}, + redis.Z{Member: "Castilla", Score: 12}, + ).Result() + + if err != nil { + panic(err) + } + + // STEP_START zrange + res4, err := rdb.ZRange(ctx, "racer_scores", 0, -1).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res4) // >>> [Ford Sam-Bodden Norem Royce Castilla Prickett] + + res5, err := rdb.ZRevRange(ctx, "racer_scores", 0, -1).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res5) // >>> [Prickett Castilla Royce Norem Sam-Bodden Ford] + // STEP_END + + // Output: + // [Ford Sam-Bodden Norem Royce Castilla Prickett] + // [Prickett Castilla Royce Norem Sam-Bodden Ford] +} + +func ExampleClient_zrangewithscores() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + _, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + redis.Z{Member: "Sam-Bodden", Score: 8}, + redis.Z{Member: "Royce", Score: 10}, + redis.Z{Member: "Ford", Score: 6}, + redis.Z{Member: "Prickett", Score: 14}, + redis.Z{Member: "Castilla", Score: 12}, + ).Result() + + if err != nil { + panic(err) + } + + // STEP_START zrange_withscores + res6, err := rdb.ZRangeWithScores(ctx, "racer_scores", 0, -1).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res6) // >>> [{6 Ford} {8 Sam-Bodden} {10 Norem} {10 Royce} {12 Castilla} {14 Prickett}] + // STEP_END + + // Output: + // [{6 Ford} {8 Sam-Bodden} {10 Norem} {10 Royce} {12 Castilla} {14 Prickett}] +} + +func ExampleClient_zrangebyscore() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + _, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + redis.Z{Member: "Sam-Bodden", Score: 8}, + redis.Z{Member: "Royce", Score: 10}, + redis.Z{Member: "Ford", Score: 6}, + redis.Z{Member: "Prickett", Score: 14}, + redis.Z{Member: "Castilla", Score: 12}, + ).Result() + + if err != nil { + panic(err) + } + + // STEP_START zrangebyscore + res7, err := rdb.ZRangeByScore(ctx, "racer_scores", + &redis.ZRangeBy{Min: "-inf", Max: "10"}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res7) // >>> [Ford Sam-Bodden Norem Royce] + // STEP_END + + // Output: + // [Ford Sam-Bodden Norem Royce] +} + +func ExampleClient_zremrangebyscore() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + _, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + redis.Z{Member: "Sam-Bodden", Score: 8}, + redis.Z{Member: "Royce", Score: 10}, + redis.Z{Member: "Ford", Score: 6}, + redis.Z{Member: "Prickett", Score: 14}, + redis.Z{Member: "Castilla", Score: 12}, + ).Result() + + if err != nil { + panic(err) + } + + // STEP_START zremrangebyscore + res8, err := rdb.ZRem(ctx, "racer_scores", "Castilla").Result() + + if err != nil { + panic(err) + } + + fmt.Println(res8) // >>> 1 + + res9, err := rdb.ZRemRangeByScore(ctx, "racer_scores", "-inf", "9").Result() + + if err != nil { + panic(err) + } + + fmt.Println(res9) // >>> 2 + + res10, err := rdb.ZRange(ctx, "racer_scores", 0, -1).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res10) // >>> [Norem Royce Prickett] + // STEP_END + + // Output: + // 1 + // 2 + // [Norem Royce Prickett] +} + +func ExampleClient_zrank() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + _, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + redis.Z{Member: "Royce", Score: 10}, + redis.Z{Member: "Prickett", Score: 14}, + ).Result() + + if err != nil { + panic(err) + } + + // STEP_START zrank + res11, err := rdb.ZRank(ctx, "racer_scores", "Norem").Result() + + if err != nil { + panic(err) + } + + fmt.Println(res11) // >>> 0 + + res12, err := rdb.ZRevRank(ctx, "racer_scores", "Norem").Result() + + if err != nil { + panic(err) + } + + fmt.Println(res12) // >>> 2 + // STEP_END + + // Output: + // 0 + // 2 +} + +func ExampleClient_zaddlex() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + _, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 0}, + redis.Z{Member: "Royce", Score: 0}, + redis.Z{Member: "Prickett", Score: 0}, + ).Result() + + // STEP_START zadd_lex + res13, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 0}, + redis.Z{Member: "Sam-Bodden", Score: 0}, + redis.Z{Member: "Royce", Score: 0}, + redis.Z{Member: "Ford", Score: 0}, + redis.Z{Member: "Prickett", Score: 0}, + redis.Z{Member: "Castilla", Score: 0}, + ).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res13) // >>> 3 + + res14, err := rdb.ZRange(ctx, "racer_scores", 0, -1).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res14) // >>> [Castilla Ford Norem Prickett Royce Sam-Bodden] + + res15, err := rdb.ZRangeByLex(ctx, "racer_scores", &redis.ZRangeBy{Min: "[A", Max: "[L"}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res15) // >>> [Castilla Ford] + // STEP_END + + // Output: + // 3 + // [Castilla Ford Norem Prickett Royce Sam-Bodden] + // [Castilla Ford] +} + +func ExampleClient_leaderboard() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "racer_scores") + // REMOVE_END + + // STEP_START leaderboard + res16, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Wood", Score: 100}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res16) // >>> 1 + + res17, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Henshaw", Score: 100}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res17) // >>> 1 + + res18, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Henshaw", Score: 150}).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res18) // >>> 0 + + res19, err := rdb.ZIncrBy(ctx, "racer_scores", 50, "Wood").Result() + + if err != nil { + panic(err) + } + + fmt.Println(res19) // >>> 150 + + res20, err := rdb.ZIncrBy(ctx, "racer_scores", 50, "Henshaw").Result() + + if err != nil { + panic(err) + } + + fmt.Println(res20) // >>> 200 + // STEP_END + + // Output: + // 1 + // 1 + // 0 + // 150 + // 200 +} From e718d1a820e400f1c181bbc8e6e15a0f80ba20b1 Mon Sep 17 00:00:00 2001 From: Andy Stark Date: Wed, 11 Sep 2024 13:31:13 +0100 Subject: [PATCH 2/2] DOC-4229 wrapped long lines --- doctests/ss_tutorial_test.go | 45 +++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/doctests/ss_tutorial_test.go b/doctests/ss_tutorial_test.go index e2c367cf1..2a6924458 100644 --- a/doctests/ss_tutorial_test.go +++ b/doctests/ss_tutorial_test.go @@ -24,7 +24,9 @@ func ExampleClient_zadd() { // REMOVE_END // STEP_START zadd - res1, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Norem", Score: 10}).Result() + res1, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Norem", Score: 10}, + ).Result() if err != nil { panic(err) @@ -32,7 +34,9 @@ func ExampleClient_zadd() { fmt.Println(res1) // >>> 1 - res2, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Castilla", Score: 12}).Result() + res2, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Castilla", Score: 12}, + ).Result() if err != nil { panic(err) @@ -95,7 +99,8 @@ func ExampleClient_zrange() { panic(err) } - fmt.Println(res4) // >>> [Ford Sam-Bodden Norem Royce Castilla Prickett] + fmt.Println(res4) + // >>> [Ford Sam-Bodden Norem Royce Castilla Prickett] res5, err := rdb.ZRevRange(ctx, "racer_scores", 0, -1).Result() @@ -103,7 +108,8 @@ func ExampleClient_zrange() { panic(err) } - fmt.Println(res5) // >>> [Prickett Castilla Royce Norem Sam-Bodden Ford] + fmt.Println(res5) + // >>> [Prickett Castilla Royce Norem Sam-Bodden Ford] // STEP_END // Output: @@ -144,7 +150,8 @@ func ExampleClient_zrangewithscores() { panic(err) } - fmt.Println(res6) // >>> [{6 Ford} {8 Sam-Bodden} {10 Norem} {10 Royce} {12 Castilla} {14 Prickett}] + fmt.Println(res6) + // >>> [{6 Ford} {8 Sam-Bodden} {10 Norem} {10 Royce} {12 Castilla} {14 Prickett}] // STEP_END // Output: @@ -179,13 +186,15 @@ func ExampleClient_zrangebyscore() { // STEP_START zrangebyscore res7, err := rdb.ZRangeByScore(ctx, "racer_scores", - &redis.ZRangeBy{Min: "-inf", Max: "10"}).Result() + &redis.ZRangeBy{Min: "-inf", Max: "10"}, + ).Result() if err != nil { panic(err) } - fmt.Println(res7) // >>> [Ford Sam-Bodden Norem Royce] + fmt.Println(res7) + // >>> [Ford Sam-Bodden Norem Royce] // STEP_END // Output: @@ -241,7 +250,8 @@ func ExampleClient_zremrangebyscore() { panic(err) } - fmt.Println(res10) // >>> [Norem Royce Prickett] + fmt.Println(res10) + // >>> [Norem Royce Prickett] // STEP_END // Output: @@ -337,9 +347,12 @@ func ExampleClient_zaddlex() { panic(err) } - fmt.Println(res14) // >>> [Castilla Ford Norem Prickett Royce Sam-Bodden] + fmt.Println(res14) + // >>> [Castilla Ford Norem Prickett Royce Sam-Bodden] - res15, err := rdb.ZRangeByLex(ctx, "racer_scores", &redis.ZRangeBy{Min: "[A", Max: "[L"}).Result() + res15, err := rdb.ZRangeByLex(ctx, "racer_scores", &redis.ZRangeBy{ + Min: "[A", Max: "[L", + }).Result() if err != nil { panic(err) @@ -368,7 +381,9 @@ func ExampleClient_leaderboard() { // REMOVE_END // STEP_START leaderboard - res16, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Wood", Score: 100}).Result() + res16, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Wood", Score: 100}, + ).Result() if err != nil { panic(err) @@ -376,7 +391,9 @@ func ExampleClient_leaderboard() { fmt.Println(res16) // >>> 1 - res17, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Henshaw", Score: 100}).Result() + res17, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Henshaw", Score: 100}, + ).Result() if err != nil { panic(err) @@ -384,7 +401,9 @@ func ExampleClient_leaderboard() { fmt.Println(res17) // >>> 1 - res18, err := rdb.ZAdd(ctx, "racer_scores", redis.Z{Member: "Henshaw", Score: 150}).Result() + res18, err := rdb.ZAdd(ctx, "racer_scores", + redis.Z{Member: "Henshaw", Score: 150}, + ).Result() if err != nil { panic(err)