redis集群配置:
建立6个redis服务器,配置如下:
Port分别为7000, 7001, 7002, 7003, 7004, 7005
Cluster_config_file分别为:nodes_7000.conf,nodes_7001.conf, nodes_7002.conf, nodes_7003.conf, nodes_7004.conf,nodes_7005.conf
Pidfile分别为: “/var/run/redis_7000.pid”,“/var/run/redis_7001.pid”, “/var/run/redis_7002.pid”, “/var/run/redis_7003.pid”,“/var/run/redis_7004.pid”, “/var/run/redis_7005.pid”
然后分别启动这6个redis服务器.
再使用如下命令将6个redis实例进行主从关联与数据分片:
redis-trib.rb create --replicas 1 IP:7000 IP:7001 IP:7002 IP:7003 IP:7004 IP:7005
//create --replicas 1表示为每台主服务器分配一台从服务器.
Redis集群报错:
Error:ERR Slot 5798 is already busy (Redis::CommandError)
Solution:用redis-cli登录到每个节点执行flushall和cluster reset
运行redis-trib.rb 命令时报错:
Solution:yum -y install ruby
ruby-devel rubygems rpm-build
gem install redis
效果图:
Redis主从配置:
在未设置bind IP与requirepass password两项配置时,需要将protected-mode设置为no, 从而允许远程访问.
主服务器配置:
从服务器配置:
Slaveof IP port ---------添加从属服务器,参数为IP地址、端口号
主备切换配置:
Sentinel.conf:
sentinel monitor master-6379 127.0.0.1 6379 1--------哨兵监视服务器,参数为被监视服务器的名称(自己设定)、IP、端口号、主备切换条件(同意切换主备的哨兵个数)
sentinel failover-timeout master-6379 900000---------哨兵切换主备的条件,参数为被监视服务器名称、时间间隔(在被监视服务器失去联系900000毫秒后切换主备服务器)
down-after-milliseconds 选项指定了Sentinel 认为服务器已经断线所需的毫秒数。
parallel-syncs 选项指定了在执行故障转移时,最多可以有多少个从服务器同时对新的主服务器进行同步,这个数字越小,完成故障转移所需的时间就越长。