Redis Cluster 集群搭建

【背景】

2年前在本地电脑上搭建过redis集群。但苦于创业公司服务器资源有限(穷),并没有应用到生产环境。近期换了个工作环境,有资源条件了准备开始搭建使用。虽然搭建过一次,但在搭建的过程当中,还是遇到一些问题,所以打算整理一份详细的搭建记录,也能给大家多一份参考选择。

【环境以及资源】

服务器:windows server 2008 r2 (因为现有服务器是windows,那我们就在windows上搭建)
下载地址:
Redis:https://github.com/MSOpenTech...(Redis-x64-3.2.100.zip)【Redis服务】
Ruby:http://dl.bintray.com/oneclic...(rubyinstaller-2.3.3-x64.exe)【Ruby环境安装】
rubygems: https://rubygems.org/pages/do...【用于安装ruby的redis依赖】
redis-trib.rb:https://raw.githubusercontent...【创建集群的ruby脚本】

【部署步骤】

一、部署6个redis服务

1、下载redis服务绿色包 https://github.com/MSOpenTech...(Redis-x64-3.2.100.zip)。我们约定7000、7001、7002 3个端口为主节点,6000、6001、6002 3个端口为从节点,便于区分。那先来搭建第一redis服务,然后如法炮制复制另外5个即可。
2、下载完成解压,修改文件夹名称为Redis-6000,修改redis.windows.conf文件里的信息如下:
port 6000 #端口#
cluster-enabled yes #是否开启集群#
cluster-config-file nodes.conf #集群节点文件,会根据配置的名字生成在目录下#
cluster-node-timeout 15000 #超时时间#
appendonly yes
注意:如果你是复制启动过的redis服务,记得检查目录下是否有appendonly.aof,nodes.conf和.rdb文件(持久化存储数据),删除他们,否则在创建集群的时候会失败。
Redis Cluster 集群搭建_第1张图片

二、安装Ruby环境

redis-trib.rb是ruby脚本编写的,可方便的搭建集群,所以我们需要安装Ruby环境来执行脚本。

1、打开下载地址 http://dl.bintray.com/oneclic... 选择 rubyinstaller-2.3.3-x64.exe 进行下载。
2、运行安装(全部勾选)
Redis Cluster 集群搭建_第2张图片

三、安装rubygems

使用rubygems是为了安装ruby的redis依赖。

1、打开下载地址 https://rubygems.org/pages/do..., 下载rubygems-update-3.0.2.gem,放到ruby目录。
2、运行命令gem install --local D:Ruby23-x64rubygems-update-3.0.2.gem
Redis Cluster 集群搭建_第3张图片

四、使用redis-trib.rb安装集群

1、打开下载地址 https://raw.githubusercontent... (指向最新版本),本文使用地址建议https://raw.githubusercontent...,另存为到本地 (一个文本类文件)。
2、打开cmd,进入redis-trib.rb文件所在目录,执行创建集群命令
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002
3、提示后输入yes
Redis Cluster 集群搭建_第4张图片

【错误帮助】

情况1、redis-trib.rb脚本版本与ruby的redis依赖版本不一致
Redis Cluster 集群搭建_第5张图片
确保端口打开,各台机子上能互相通信

五、数据读写测试

1、打开cmd,进入redis6000端口的目录,输入redis-cli -h 127.0.0.1 -p 6000 -c(集群连接多个-c)。随便连接哪一个节点都可以,只要这个节点运行正常,集群会自动根据key来进入对应槽点的节点。
2、我们存入2组key:value进行测试,key:vvv1和age:28,如图所示age被存入7000,key被存入7002。那对应的从库节点应该是6001和6000,我们可以利用工具查看。
Redis Cluster 集群搭建_第6张图片

六、集群高可用性测试

首先模拟主节点7000挂掉,按照预期从节点6001选为主节点。
1、进入服务里停止redis7000
2、查看集群信息,cmd进入redis-trib.rb文件目录,执行redis-trib.rb check 127.0.0.1:6001
Redis Cluster 集群搭建_第7张图片
7000变为从节点。

七、额外添加集群节点

集群在运行了一段时间之后,由于需求的变动,我们会增加或者删减集群节点。
主从节点增加选择思路:(1)缓存服务存储压力大,增加主节点,横向扩展 (2)保证redis集群高可用,多增加从节点。任何一条主从线下的redis服务全部故障,则导致集群不可用。
Redis Cluster 集群搭建_第8张图片

1、新部署一个redis服务端口7003
2、把7003加入集群,cmd进入redis-trib.rb文件目录,执行redis-trib.rb add-node 127.0.0.1:7003 127.0.0.1:7000
Redis Cluster 集群搭建_第9张图片

【错误帮助】

如果过程中出现槽错误
Redis Cluster 集群搭建_第10张图片

八、移除集群节点

1、删除从节点,因为没有分配哈希槽,所以直接删除。IP:端口 ID
redis-trib.rb del-node 127.0.0.1:6003 241c77920bde9952fbf3cb38f7b3085c946b0324
Redis Cluster 集群搭建_第11张图片
2、删除主节点,因为主节点有分槽,先把槽移动至其他主节点,再删除

总结

1、搭建完一个redis节点后复制另外5个。6个redis节点是集群的最低配置。3对1主1从。
2、安装ruby环境来执行redis-trib.rb创建集群。还有手动创建集群的方式,不需要ruby,但是麻烦一点。
3、在搭建好的集群额外再添加删除节点。加主节点还是从节点思路:缓存服务存储压力大,增加主节点,横向扩展。保证redis集群高可用,多增加从节点,因为任何一条主从线下的redis节点全部故障,则导致集群不可用。

【如果文章对你有所帮助,请在评论区留言点赞,以资鼓励。】

你可能感兴趣的:(redis,缓存)