1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package main
- import (
- "context"
- "flag"
- "fmt"
- "time"
- "github.com/go-redis/redis/v8"
- )
- var ctx = context.Background()
- func main() {
- redisHost := flag.String("host", "localhost", "Redis Host")
- redisPort := flag.Int("port", 6379, "Redis Port")
- redisPassword := flag.String("password", "", "RedisPassword")
- messageCount := flag.Int("message_count", 10000, "run this man times")
- flag.Parse()
- client := redis.NewClusterClient(&redis.ClusterOptions{
- Addrs: []string{fmt.Sprintf("%s:%d", *redisHost, *redisPort)},
- MaxRedirects: 3,
- Password: *redisPassword,
- PoolSize: 8,
- MinIdleConns: 5,
- PoolTimeout: 0,
- IdleTimeout: 20 * time.Second,
- DialTimeout: 2 * time.Second,
- })
- client.Ping(ctx)
- for i := 0; i < *messageCount; i++ {
- misses := client.PoolStats().Misses
- _, err := client.Set(ctx, "DTM", "DTM", 0).Result()
- if err != nil {
- fmt.Println(err)
- }
- if client.PoolStats().Misses > misses {
- fmt.Println("Failover")
- }
- }
- }
|