Go Redis中文文档

Redis分片

Preview
  • Redis Sentinel 哨兵
  • 服务器客户端
  • 哨兵服务器客户端

Redis Sentinel 哨兵

提示 要了解如何使用 go-redis 客户端,请参阅 入门 指南。

服务器客户端

连接到 哨兵模式 管理的服务器, 更多配置项,请参照 redis.FailoverOptions:

import "github.com/redis/go-redis/v9"

rdb := redis.NewFailoverClient(&redis.FailoverOptions{
    MasterName:    "master-name",
    SentinelAddrs: []string{":9126", ":9127", ":9128"},
})

从go-redis v8版本开始,你可以尝试使用 NewFailoverClusterClient 把只读命令路由到从节点, 请注意, NewFailoverClusterClient 借助了 Cluster Client 实现,不支持DB选项(只能操作DB 0):

import "github.com/redis/go-redis/v9"

rdb := redis.NewFailoverClusterClient(&redis.FailoverOptions{
    MasterName:    "master-name",
    SentinelAddrs: []string{":9126", ":9127", ":9128"},

    // 你可以选择把只读命令路由到最近的节点,或者随机节点,二选一
    // RouteByLatency: true,
    // RouteRandomly: true,
})

哨兵服务器客户端

请注意,哨兵客户端本身用于连接哨兵服务器,你可以从哨兵上获取管理的redis服务器信息:

import "github.com/redis/go-redis/v9"

sentinel := redis.NewSentinelClient(&redis.Options{
    Addr: ":9126",
})

addr, err := sentinel.GetMasterAddrByName(ctx, "master-name").Result()