美文网首页我的Python之旅redis我爱编程
Redis Sentinel 主从高可用配置

Redis Sentinel 主从高可用配置

作者: resolvewang | 来源:发表于2017-05-26 21:41 被阅读204次

    由于分布式微博爬虫中使用celery作为分布式任务调度工具,使用redis作为celery的broker.由于redis是单机,当redis挂掉之后,整个系统就会挂掉。所以我抽时间看了一下redis的高可用方案,本文讲讲使用redis sentinel配置redis 主从高可用架构的过程。

    目前节点:

    • 123.206.21.165 主节点
    • 119.29.193.219 从节点

    redis的安装我就不说了,官网写得很明白,也可以查看我写的wiki

    在主节点安装完redis后,我们在redis安装目录新建一个myredis.conf文件,里面内容如下

    daemonize yes
    pidfile "/home/ubuntu/program/others/redis.pid"
    port 6379
    logfile "/home/ubuntu/program/others/redis.log"
    requirepass "abcdefg"
    masterauth "abcdefg"
    

    启动redis

    src/redis-server myredis.conf

    然后查看/home/ubuntu/program/others/redis.log文件,看redis是否成功启动。启动成功后,我们在从节点进行相同的操作,只有一步不同,就是myredis.conf文件,除了包含上述内容以外,还得包括

    slaveof 123.206.21.165 6379

    在从节点启动后,我们再分别在两个节点配置sentinel。这里仍然以主节点为例说明,在redis安装目录我们新建一个mysentinel.conf文件,加上如下内容

    port 26379
    bind 0.0.0.0
    daemonize yes
    logfile "/home/ubuntu/program/others/sentinel.log"
    sentinel monitor mymaster 123.206.21.165 6379 1   # 主节点名 和 ip port 
    sentinel down-after-milliseconds mymaster 5000  
    sentinel failover-timeout mymaster 15000
    sentinel auth-pass mymaster abcdefg
    

    通过

    src/redis-sentinel mysentinel.conf

    启动位于主节点的哨兵。从节点配置过程和启动哨兵方式和上述完全一样。这里就不啰嗦了。

    这个时候,我们可以通过杀死主节点的redis服务,看是否会成功切换到从节点。其实我想讲的就是这里。当我们哨兵只有两个的时候,会发现一直选举主节点都会失败。

    我们需要设置三个或者三个以上的哨兵,才可以让选举成功。如果服务器只有两台,可以通过修改

    port 26379

    为 别的端口,来在同一台机器上设置多个哨兵


    在折腾了很久后,终于把主从切换做好了,结果发现想要把它用到celery中,还十分困难,目前也还不知道如何做celery中的redis高可用方案,有知道的朋友可以给我讲讲,感谢!

    这篇文章写得比较简单,也懒得截图,如果有缘人看到了,按上述过程来做 redis sentinel有问题的话,可以留言。

    另外,除了主从设置哨兵以外,还可以通过redis cluster集群方案、keepalived+redis或者codis这类ha proxy的方案来做redis的高可用。时间允许的话,我也会去尝试一下,看能不能和celery结合起来。

    相关文章

      网友评论

        本文标题:Redis Sentinel 主从高可用配置

        本文链接:https://www.haomeiwen.com/subject/spjzxxtx.html