【Redis集群架构说明及搭建】


前言

前面文章介绍了Redis的安装、持久化策略及主从复制,本文对Redis集群进行说明,并进行集群环境的搭建。


一、Redis集群的架构特点

  1. 所有的redis节点彼此互联,节点的fail是通过集群中超过半数的节点检测失效时才生效.
    思考:根据其特点可想到Redis搭建时,数量起码有3个,才能支持节点之间的检测
  2. 存取数据时连接任一节点都可以,但集群中有一个节点fail整个集群都会fail
    思考:为何有一个节点fail整个集群都会fail?
    答:Redis 集群中内置了 16384 个哈希槽,当需要在Redis 集群中放置一个 key-value 时,redis 先对 key 使用crc16 算法 算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

二、Redis集群搭建

根据上文中Redis集群架构特点,选择搭建3主3从共6个的Redis集群,在每个主Redis节点下配置1个备份节点,防止主Redis宕机后备份节点可以替补上去,实现高可用。

1.安装ruby环境

提示:搭建集群需使用ruby脚本,需先安装ruby环境:

命令如下:

 cd /usr/upload
yum install ruby
yum install rubygems
gem install redis-3.0.0.gem
cd /usr/upload/redis-3.0.0/src
ll *.rb

2.拷贝6个节点(Redis)

提示:若对已使用过的Redis进行复制,需先删除dump.rdb文档和appendonly.aof文档删除数据,未使用过的则无需进行该操作

命令如下:

#删除redis数据
cd /usr/local/redis/bin     
rm -f dump.rdb
rm -f appendonly.aof
    

提示:该操作需进行6次,记得修改存储redis文件夹的名称


cd /usr/local
mkdir redis-cluster
cp -r redis redis-cluster/redis-7001

操作完成后,文件的目录结构如下:

在这里插入图片描述

3.修改配置文件

提示:该操作需进行6次,端口号和文件夹对应

命令如下:

vim /usr/local/redis-cluster/redis-7001/bin/redis.conf:
port 7001
cluster-enable yes
    

4.创建启动脚本及关闭脚本

提示:在redis-cluster目录下创建统一的执行脚本,方便启动,无需将其设为开机自启

命令如下:

vim /usr/local/redis-cluster/bin/start-all.sh
#在启动脚本文件中编写如下内容
cd /usr/local/redis-cluster/redis-7001/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7002/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7003/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7004/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7005/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7006/bin
./redis-server redis.conf
    
vim /usr/local/redis-cluster/bin/shutdown-all.sh
#在关闭脚本文件中编写如下内容
cd /usr/local/redis-cluster/redis-7001/bin/
./redis-cli -p 7001 shutdown
cd /usr/local/redis-cluster/redis-7002/bin/
./redis-cli -p 7002 shutdown
cd /usr/local/redis-cluster/redis-7003/bin/
./redis-cli -p 7003 shutdown
cd /usr/local/redis-cluster/redis-7004/bin/
./redis-cli -p 7004 shutdown
cd /usr/local/redis-cluster/redis-7005/bin/
./redis-cli -p 7005 shutdown
cd /usr/local/redis-cluster/redis-7006/bin/
./redis-cli -p 7006 shutdown

5.使用ruby脚本创建Redis集群

命令如下:

#进入ruby脚本所在目录
cd /usr/upload/redis-3.0.0/src   
#创建Redis集群
./redis-trib.rb create --replicas 1 192.168.175.134:7001 192.168.175.134:7002 192.168.175.134:7003 192.168.175.134:7004 192.168.175.134:7005  192.168.175.134:7006
    

6.测试

启动start-all.sh脚本,查看redis进程如图所示:

在这里插入图片描述
进入端口为7001的redis客户端,并查看集群节点信息,如图所示:

#命令如下:
cd /usr/local/redis-cluster/redis-7001/bin
 ./redis-cli -p 7001
 cluster nodes

在这里插入图片描述
执行统一关闭脚本

cd /usr/local/redis-cluster/
./shutdown-all.sh


总结

本文简单介绍了Redis集群架构的特点,并较为详细地展示了Redis集群的搭建过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值