1
0
mirror of https://github.com/redis/go-redis.git synced 2025-12-02 06:22:31 +03:00
Files
go-redis/example/cluster-mget/main.go
Nedyalko Dyakov 68d8c59557 chore(release): v9.17.1 (#3617)
* add release notes

* update version to 9.17.1
2025-11-26 12:20:20 +02:00

109 lines
2.5 KiB
Go

package main
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
func main() {
ctx := context.Background()
// Create a cluster client
rdb := redis.NewClusterClient(&redis.ClusterOptions{
Addrs: []string{
"localhost:16600",
"localhost:16601",
"localhost:16602",
"localhost:16603",
"localhost:16604",
"localhost:16605",
},
})
defer rdb.Close()
// Test connection
if err := rdb.Ping(ctx).Err(); err != nil {
panic(fmt.Sprintf("Failed to connect to Redis cluster: %v", err))
}
fmt.Println("✓ Connected to Redis cluster")
// Define 10 keys and values
keys := make([]string, 10)
values := make([]string, 10)
for i := 0; i < 10; i++ {
keys[i] = fmt.Sprintf("key%d", i)
values[i] = fmt.Sprintf("value%d", i)
}
// Set all 10 keys
fmt.Println("\n=== Setting 10 keys ===")
for i := 0; i < 10; i++ {
err := rdb.Set(ctx, keys[i], values[i], 0).Err()
if err != nil {
panic(fmt.Sprintf("Failed to set %s: %v", keys[i], err))
}
fmt.Printf("✓ SET %s = %s\n", keys[i], values[i])
}
/*
// Retrieve all keys using MGET
fmt.Println("\n=== Retrieving keys with MGET ===")
result, err := rdb.MGet(ctx, keys...).Result()
if err != nil {
panic(fmt.Sprintf("Failed to execute MGET: %v", err))
}
*/
/*
// Validate the results
fmt.Println("\n=== Validating MGET results ===")
allValid := true
for i, val := range result {
expectedValue := values[i]
actualValue, ok := val.(string)
if !ok {
fmt.Printf("✗ %s: expected string, got %T\n", keys[i], val)
allValid = false
continue
}
if actualValue != expectedValue {
fmt.Printf("✗ %s: expected '%s', got '%s'\n", keys[i], expectedValue, actualValue)
allValid = false
} else {
fmt.Printf("✓ %s: %s\n", keys[i], actualValue)
}
}
// Print summary
fmt.Println("\n=== Summary ===")
if allValid {
fmt.Println("✓ All values retrieved successfully and match expected values!")
} else {
fmt.Println("✗ Some values did not match expected values")
}
*/
// Clean up - delete the keys
fmt.Println("\n=== Cleaning up ===")
for _, key := range keys {
if err := rdb.Del(ctx, key).Err(); err != nil {
fmt.Printf("Warning: Failed to delete %s: %v\n", key, err)
}
}
fmt.Println("✓ Cleanup complete")
err := rdb.Set(ctx, "{tag}exists", "asdf",0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(ctx, "{tag}nilkeykey1").Result()
fmt.Printf("\nval: %+v err: %+v\n", val, err)
valm, err := rdb.MGet(ctx, "{tag}nilkeykey1", "{tag}exists").Result()
fmt.Printf("\nval: %+v err: %+v\n", valm, err)
}