redisclustermanager.go 585 B

123456789101112131415161718192021222324252627282930
  1. package redis
  2. import (
  3. "io"
  4. "zero/core/syncx"
  5. red "github.com/go-redis/redis"
  6. )
  7. var clusterManager = syncx.NewResourceManager()
  8. func getCluster(server, pass string) (*red.ClusterClient, error) {
  9. val, err := clusterManager.GetResource(server, func() (io.Closer, error) {
  10. store := red.NewClusterClient(&red.ClusterOptions{
  11. Addrs: []string{server},
  12. Password: pass,
  13. MaxRetries: maxRetries,
  14. MinIdleConns: idleConns,
  15. })
  16. store.WrapProcess(process)
  17. return store, nil
  18. })
  19. if err != nil {
  20. return nil, err
  21. }
  22. return val.(*red.ClusterClient), nil
  23. }