您的位置:首页 > 数据库 > Redis

Redis集群搭建----(超详细过程)

2018-12-02 21:29 155 查看

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

(一)redis集群的原理

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

 2、redis-cluster投票:容错

 

架构细节:
(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集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
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

开启集群模式

 接着  Esc + : + wq  保存退出就ok了

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

e.g.:cp -r redis01/  redis02

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

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

vi start-all.sh

 添加执行语句(如下图)

给start-all.sh文件添加可执行权限:

chmod u+x start-all.sh

开启redis:./start-all.sh

查看redis进程:ps aux|grep redis

(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将本地文件上传到虚拟机

运行命令:gem install redis-3.0.0.gem  安装ruby脚本需要的库

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集群搭建过程信息,如图: 

5、redis集群的使用方法

redis-cli连接集群。
[root@localhost redis-cluster]# redis01/redis-cli -p 7002 -c
-c:代表连接的是redis集群
 

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

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: