初学者一枚,有不对的地方还请指出来,谢谢喽 ^-^

(一)redis集群的原理

 1、redis-cluster (redis集群) 架构图

如何验证redis集群 redis 集群验证_redis

 2、redis-cluster投票:容错

 

如何验证redis集群 redis 集群验证_如何验证redis集群_02

架构细节:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(PING就是用来检测redis节点的健康状态,在终端输入ping命令出来pong就表示此节点健康)

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.
(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可.
(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value.
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点(如下图).

 

如何验证redis集群 redis 集群验证_ruby_03

(二)redis集群的搭建

redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
redis集群至少需要6台服务器。
因为是个人开发使用所以我们搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006
 

1、搭建伪分布式

(1)在安装redis的目录中创建同级目录redis-cluster用于存放redis集群中的其他redis

mkdir redis-cluster

(2)复制redis中的bin(redis实例)到redis-cluster目录中的redis01目录中

cp redis/bin redis-cluster/redis01 -r

(3)cd到redis01中,如果有dump.rdb、appendonly.aof文件就删除(搭建集群需要每个节点都是空节点,否则会出错)

rm -f dump.rdb、rm -f appendonly.aof

(4)修改redis.conf文件中的端口号、开启集群模式

vi redis.conf

 修改redis端口为7001

如何验证redis集群 redis 集群验证_redis集群_04

开启集群模式

如何验证redis集群 redis 集群验证_如何验证redis集群_05

Esc + : + wq

(5)接着复制其他五个redis

e.g.:cp -r redis01/  redis02

如何验证redis集群 redis 集群验证_如何验证redis集群_06

分别修改其他五个redis的端口号(7002-7006)

(6)创建批处理文件(mkdir )用于方便启动redis集群

vi 

 添加执行语句(如下图)

如何验证redis集群 redis 集群验证_redis_07

给文件添加可执行权限:

chmod u+x 
开启redis:./
查看redis进程:ps aux|grep redis

如何验证redis集群 redis 集群验证_ruby_08

(7)cd到redis-3.0.0目录--->cd到src目录

复制redis-trib.rb文件到redis-cluster目录:cp redis-trib.rb /usr/local/redis-cluster

(此时我们创建的redis还只是单机redis,说白了就是还不是集群)

(运行redis集群需要ruby环境,也就是用ruby将redis之间连接起来)

2、搭建redis集群环境

使用ruby脚本搭建集群。需要ruby的运行环境。
安装ruby,运行下面俩命令:

yum install ruby
 yum install rubygems

3、安装ruby脚本运行使用的包

使用SecureCRT中的SFTP将本地文件上传到虚拟机

如何验证redis集群 redis 集群验证_ruby_09

运行命令:gem install redis-3.0.0.gem

如何验证redis集群 redis 集群验证_如何验证redis集群_10

4、使用ruby脚本搭建集群。(参数“1”指每一个节点有一个备份机,所以集群必须是偶数个节点,否则会报错)

./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006

如何验证redis集群 redis 集群验证_redis_11

redis集群搭建过程信息,如图: 

如何验证redis集群 redis 集群验证_如何验证redis集群_12

5、redis集群的使用方法

redis-cli连接集群。

[root@localhost redis-cluster]# redis01/redis-cli -p 7002 -c


-c:代表连接的是redis集群
 

到此redis集群搭建完成!0-0