From 13682c437e37e87240141f3618db6fdb4bc4a59d Mon Sep 17 00:00:00 2001 From: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> Date: Wed, 9 Oct 2024 11:24:47 +0100 Subject: [PATCH] DOC-4239 added Count-min sketch examples (#3118) Co-authored-by: Vladyslav Vildanov <117659936+vladvildanov@users.noreply.github.com> Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> --- doctests/cms_tutorial_test.go | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 doctests/cms_tutorial_test.go diff --git a/doctests/cms_tutorial_test.go b/doctests/cms_tutorial_test.go new file mode 100644 index 00000000..ade1fa93 --- /dev/null +++ b/doctests/cms_tutorial_test.go @@ -0,0 +1,84 @@ +// EXAMPLE: cms_tutorial +// HIDE_START +package example_commands_test + +import ( + "context" + "fmt" + + "github.com/redis/go-redis/v9" +) + +// HIDE_END + +func ExampleClient_cms() { + 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, "bikes:profit") + // REMOVE_END + + // STEP_START cms + res1, err := rdb.CMSInitByProb(ctx, "bikes:profit", 0.001, 0.002).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res1) // >>> OK + + res2, err := rdb.CMSIncrBy(ctx, "bikes:profit", + "Smoky Mountain Striker", 100, + ).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res2) // >>> [100] + + res3, err := rdb.CMSIncrBy(ctx, "bikes:profit", + "Rocky Mountain Racer", 200, + "Cloudy City Cruiser", 150, + ).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res3) // >>> [200 150] + + res4, err := rdb.CMSQuery(ctx, "bikes:profit", + "Smoky Mountain Striker", + ).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res4) // >>> [100] + + res5, err := rdb.CMSInfo(ctx, "bikes:profit").Result() + + if err != nil { + panic(err) + } + + fmt.Printf("Width: %v, Depth: %v, Count: %v", + res5.Width, res5.Depth, res5.Count) + // >>> Width: 2000, Depth: 9, Count: 450 + // STEP_END + + // Output: + // OK + // [100] + // [200 150] + // [100] + // Width: 2000, Depth: 9, Count: 450 +}