diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2021-11-25 00:15:46 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-25 00:15:46 -0800 |
| commit | 6f95c06bd53cb452a28168970a4ce676ff84f26f (patch) | |
| tree | 095de151262566b02f3d14020cab3da981e2d226 | |
| parent | da1c755f6ac4ea0a53c3f6f7b83b4115468e1887 (diff) | |
| parent | ec03f22cc31295159354bc3762af4302eaf05357 (diff) | |
| download | seaweedfs-6f95c06bd53cb452a28168970a4ce676ff84f26f.tar.xz seaweedfs-6f95c06bd53cb452a28168970a4ce676ff84f26f.zip | |
Merge pull request #2469 from hilimd/master
support redis2 sentinel
| -rw-r--r-- | weed/command/scaffold/filer.toml | 8 | ||||
| -rw-r--r-- | weed/filer/redis2/redis_sentinel_store.go | 45 |
2 files changed, 53 insertions, 0 deletions
diff --git a/weed/command/scaffold/filer.toml b/weed/command/scaffold/filer.toml index a56251ae7..d936f91b6 100644 --- a/weed/command/scaffold/filer.toml +++ b/weed/command/scaffold/filer.toml @@ -167,6 +167,14 @@ database = 0 # This changes the data layout. Only add new directories. Removing/Updating will cause data loss. superLargeDirectories = [] +[redis2_sentinel] +enabled = false +addresses = "172.22.12.7:26379,172.22.12.8:26379,172.22.12.9:26379" +masterName = "master" +username = "" +password = "" +database = 0 + [redis_cluster2] enabled = false addresses = [ diff --git a/weed/filer/redis2/redis_sentinel_store.go b/weed/filer/redis2/redis_sentinel_store.go new file mode 100644 index 000000000..802588b2b --- /dev/null +++ b/weed/filer/redis2/redis_sentinel_store.go @@ -0,0 +1,45 @@ +package redis2 + +import ( + "github.com/chrislusf/seaweedfs/weed/filer" + "github.com/chrislusf/seaweedfs/weed/util" + "github.com/go-redis/redis/v8" + "time" +) + +func init() { + filer.Stores = append(filer.Stores, &Redis2SentinelStore{}) +} + +type Redis2SentinelStore struct { + UniversalRedis2Store +} + +func (store *Redis2SentinelStore) GetName() string { + return "redis2_sentinel" +} + +func (store *Redis2SentinelStore) Initialize(configuration util.Configuration, prefix string) (err error) { + return store.initialize( + configuration.GetStringSlice(prefix+"addresses"), + configuration.GetString(prefix+"masterName"), + configuration.GetString(prefix+"username"), + configuration.GetString(prefix+"password"), + configuration.GetInt(prefix+"database"), + ) +} + +func (store *Redis2SentinelStore) initialize(addresses []string, masterName string, username string, password string, database int) (err error) { + store.Client = redis.NewFailoverClient(&redis.FailoverOptions{ + MasterName: masterName, + SentinelAddrs: addresses, + Username: username, + Password: password, + DB: database, + MinRetryBackoff: time.Millisecond * 100, + MaxRetryBackoff: time.Minute * 1, + ReadTimeout: time.Second * 30, + WriteTimeout: time.Second * 5, + }) + return +} |
