From 77dabc301912331567d6c554196003da48840d5f Mon Sep 17 00:00:00 2001 From: Rusty Magnet <5367141+rustymagnet3000@users.noreply.github.com> Date: Tue, 4 Oct 2022 13:05:14 +0100 Subject: [PATCH] docs: another ScanType example with "Hash" as the KeyType (#2212) * docs: example ScanType call that passes in Hash and gets all keys * docs: added further example_scantype * docs: updated comment of ExampleClient_ScanType_Type_Hash --- example_test.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/example_test.go b/example_test.go index 56cf9018..2626b9aa 100644 --- a/example_test.go +++ b/example_test.go @@ -278,6 +278,36 @@ func ExampleClient_ScanType() { // Output: found 33 keys } +// ExampleClient_ScanType_Type_Hash uses the KeyType "hash" +// Uses ScanType toZZ loop through lots of "keys" in Redis, 10 at a time, and add each key to a []string +func ExampleClient_ScanType_Type_Hash() { + rdb.FlushDB(ctx) + for i := 0; i < 33; i++ { + err := rdb.HSet(context.TODO(), fmt.Sprintf("key%d", i), "value", "foo").Err() + if err != nil { + panic(err) + } + } + + var allKeys []string + var cursor uint64 + var err error + + for { + var keysFromScan []string + keysFromScan, cursor, err = rdb.ScanType(context.TODO(), cursor, "key*", 10, "hash").Result() + if err != nil { + panic(err) + } + allKeys = append(allKeys, keysFromScan...) + if cursor == 0 { + break + } + } + fmt.Printf("%d keys ready for use\n", len(allKeys)) + // Output: 33 keys ready for use\n +} + // ExampleMapStringStringCmd_Scan shows how to scan the results of a map fetch // into a struct. func ExampleMapStringStringCmd_Scan() {