1redis集群概念
由多个Redis服务器组成的分布式网络服务集群;
每一个Redis服务器称为节点Node,节点之间会互相通信。两两相连;
Redis集群无中心节点。
2集群节点复制
Redis集群的每个节点都有两种角色可选:
主节点Master node:用于存储数据;
从节点Slave node:从某个主节点的复制数据。
当用户需要处理更多读请求的时候,添加从节点可以扩展系统的读性能,因为Redis集群重用了单机Redis复制特性的代码,所以集群的复制行为和我们之前介绍的单机复制特性的行为是完全一样的。
3故障转移
Redis集群的主节点内置了类似Redis Sentinel的节点故障检测和自动故障转移功能,当集群中的某个主节点下线时,集群中的其他在线主节点会注意到这一点,并对已下线的主节点进行故障转移。集群进行故障转移的方法和Redis Sentinel进行故障转移的方法基本一样,不同的是,在集群里面,故障转移是由集群中其他在线的主节点负责进行的,所以集群不必另外使用Redis Sentinel。
4集群搭建
3.7.0、准备工作
(1)安装ruby环境
redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:
yum -y install ruby
yum -y install rubygems
(2)安装ruby和redis的接口程序
拷贝redis-3.0.0.gem至/usr/local下;
执行安装:
gem install /usr/local/redis-3.0.0.gem
5集群规划
(1)Redis集群最少需要6个节点,可以分布在一台或者多台主机上。在教案在一台主机上创建伪分布式集群,不同的端口表示不同的redis节点,如下:
主节点:192.168.56.3:7001 192.168.56.3:7002 192.168.56.3:7003
从节点:192.168.56.3:7004 192.168.56.3:7005 192.168.56.3:7006
(2)在/usr/local/redis下创建redis-cluster目录,其下创建7001、7002。。7006目录
(3)将redis解压路径下的配置文件redis.conf,依次拷贝到每个700X目录内,并修改每个700X目录下的redis.conf配置文件:
port 700X
bind 192.168.56.3
cluster-enabled yes
建议配置:开启后台模式 daemonized yes
指定日志输出的文件 logfile /usr/local/redis/redis-cluster/7001/node1.log
5.1启动每个结点redis服务
依次以700X下的redis.conf,启动redis节点。(必须指定redis.conf文件)
./redis-server /../700X/redis.conf
5.2执行创建集群命令
进入到redis源码存放目录/home/redis/redis-4.10.3/src下,执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。
./redis-trib.rb create --replicas 1 192.168.254.4:7001 192.168.254.4:7002 192.168.254.4:7003 192.168.254.4:7004 192.168.254.4:7005 192.168.254.4:7006 |
6查询集群信息
集群创建成功登陆任意redis结点查询集群中的节点情况。
./redis-cli -c -h 192.168.56.3 -p 7001
说明:
./redis-cli -c -h 192.168.56.3 -p 7001 ,其中:
-c表示以集群方式连接redis,
-h指定ip地址,
-p指定端口号
cluster nodes 查询集群结点信息;
cluster info 查询集群状态信。