redis集群模式及哨兵

1、主从复制(读写分离)

一般是一个master,多个slave。html

master进行写操做,slave进行读操做。node

缺点:当master宕机时,redis将没法进行写操做,仅能读。redis

master(端口9000)核心配置:centos

daemonize yes port 9000 logfile 9000.log dir ./ requirepass 123 masterauth 123 bind 192.168.0.115

# AOF 数据持久化 appendonly yes appendfilename aof-9000.aof appendfsync everysec no-appendfsync-on-rewrite yes auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb

slave(端口9001)核心配置:ruby

port 9001 daemonize yes logfile 9001.log dir ./ requirepass 123
#配置主节点 slaveof 192.168.0.115 9000 masterauth 123 bind 192.168.0.115 # AOF 数据持久化 appendonly yes appendfilename aof-9001.aof appendfsync everysec no-appendfsync-on-rewrite yes auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb

思考一个问题:当单机redis服务数据量过大怎么办?bash

redis3.0事后为此提供了解决方案。app

2、cluster模式(分区)(至少须要3个主节点)

一、使用该模式须要用到src目录下的redis-trib.rb测试

使用以前须要安装ruby语言ui

本人测试时用的redis版本为4.0.10,至少须要2.2以上版本的ruby,而yum install ruby仅为2.0版本,使得运行redis-trib.rb会提示版本太低。spa

在这里使用另外一种简单的安装方式(参考https://www.cnblogs.com/ding2016/p/7903147.html

yum install centos-release-scl-rh    //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源 yum install rh-ruby24  -y    //直接yum安装便可   scl enable rh-ruby24 bash    //必要一步 ruby -v    //查看安装版本

当ruby -v能运行时,则表示安装成功。

二、接下来就是建立6个(最少)不一样端口号的redis服务,可参考网上修改端口号的方法

关键

cluster-enabled  yes

这个要打开。而后启动6个服务就ok了。

三、运行命令

./redis-trib.rb  create  --replicas 1 192.168.0.189:7000 192.168.0.189:7001 192.168.0.189:7002 192.168.0.189:7003 192.168.0.189:7004 192.168.0.189:7005

replicas 1的意思是自动分配master,并为每一个master建立1个slave。

运行,可能会让你输入yes。

若是报错,如下提供3种解决方案:

①删除dump.rdb和nodes.conf

②进入各个端口的客户端(如 ./redis-cli -h 192.168.0.189 -p 7000),运行reflushdb

③进入各个端口客户端,运行cluster reset

四、建立成功后就可使用了。

经常使用命令:

ps -ef | grep redis #查看redis进程 redis客户端命令: cluster info cluster nodes

3、哨兵模式(sentinel)

主要修改的配置文件为(sentinel.conf)参考(http://www.javashuo.com/article/p-knctpmke-do.html

port 8000 daemonize yes logfile "8000.log" dir "./"
#监控的主节点,后面的1表示指明当有多少个sentinel认为一个master失效时,master才算真正失效 sentinel monitor mymaster 192.168.0.189 7000 1 sentinel down-after-milliseconds mymaster 30000
#这个配置项指定了在发生failover主备切换时最多能够有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就
越长,可是若是这个数字越大,就意味着越多的slave由于replication而不可用。能够经过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 15000 #若是主节点有密码就写,没密码就注掉 sentinel auth-pass mymaster 123 #哨兵ip bind 192.168.0.198

经过./redis-centinel ../sentinel.conf便可启动。

相关文章
相关标签/搜索