Redis Sentinel 主从高可用配置

由于分布式微博爬虫中使用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结合起来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Codis高可用方案官方推荐使用Sentinel Redis 本身就是最终一致性的。Master 挂了,Promo...
    三杯水Plus阅读 2,787评论 2 8
  • 一、单个实例 当系统中只有一台redis运行时,一旦该redis挂了,会导致整个系统无法运行。 二、备份 由于单台...
    zhou阅读 22,664评论 8 102
  • 山近月远觉月小,便道此山大于月。 若人有眼大如天,当见山高月更阔。
    凌尊阅读 906评论 1 3
  • 在飞机上的时间,是这次美国之旅最悠闲的,吃了就看看电影,看完之后睡个觉,睡醒了,去机尾逛个圈,喝个水,跟各位唐山大...
    amy430阅读 483评论 8 5
  • 1.url百度百科上是这样解释的:统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互...
    adingmoon阅读 2,869评论 0 1