新手问题 rails 中的 redis 集群问题。

279959599 · 2018年05月09日 · 最后由 279959599 回复于 2018年05月11日 · 1685 次阅读

用的是 redis 自带的哨兵功能。redis 自己本身杀死 master 的 redis,能自动切换到另一台。就是和 rails 连接不上。 文档这样写配置的

SENTINELS = [{ host: "127.0.0.1", port: 26380 },
             { host: "127.0.0.1", port: 26381 }]

redis = Redis.new(url: "redis://mymaster", sentinels: SENTINELS, role: :master)

我不太理解的是 rul 的配置 redis://mymaster mymaster 是只当前 master 的 redis 机器的 ip 地址嘛。

投票机制我知道,不太明白的是,配置文件中的 url 配置 url: "redis://mymaster" 这个应该是什么

这个地址到底是什么地址呢

The master name identifies a group of Redis instances composed of a master and one or more slaves (mymaster in the example). 原文这么说的,mymaster 是一组 redis。这太让人费解了,url 的 value 值应该是一个 redis 的 url 地址?还是一个数组,里边是所有主从几台机器的 ip 还是什么

mymaster 不是地址吧 是 master name。在 sentinel 配置中

sentinel monitor mymaster 127.0.0.1 6379 2    

monitor 后面的就是 sentinel 为 master 定义的 maser name。第一句话说了:The master name identifies ......

redis-rb 中没试过,Golang 的 redis 包是这样的,我觉得应该是通用的

客户端访问 sentinel,通过 sentinel 来找 master 或者 slave

配置文件确实已经配置好了。 sentinel monitor mymaster 10.106.124.86 6379 2

@pathbox 但是看错误提示,url 他就当一个 ip 地址或者域名来解析。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号