Linux环境下Redis-5.0.5分片集群(RedisCluster)环境搭建

4 篇文章 0 订阅

1、环境准备

准备六台已经安装好的redis服务器
IP地址
192.168.114.128 (主机)
192.168.114.129 (主机)
192.168.114.130 (主机)
192.168.114.131 (备机)
192.168.114.132 (备机)
192.168.114.133 (备机)

注:主数量应为奇数,以便做选举判决。redis官方建意:整体集群最少需要准备6台。

2、安装Redis

在每台Liunx服务器上安装好redis,并测试能够成功启动。
redis安装教程点击这里注:此步可以先跳过

3、在每台服务器中创建RedisCluster文件夹

该文件夹夹用于存放redis分片集群
cd /usr/local/redis-cluster

4、在redis-cluster文件下创建子文件夹

例如,我当前由六台机器,那么我根据当前六台机器的IP器创建,对应的文件夹
192.168.114.128服务机上,创建递归文件夹 mkdir -p /usr/local/redis-cluster/128/data
192.168.114.129服务机上,创建递归文件夹 mkdir -p /usr/local/redis-cluster/129/data
192.168.114.130服务机上,创建递归文件夹 mkdir -p /usr/local/redis-cluster/130/data
192.168.114.131服务机上,创建递归文件夹 mkdir -p /usr/local/redis-cluster/131/data
192.168.114.132服务机上,创建递归文件夹 mkdir -p /usr/local/redis-cluster/132/data
192.168.114.133服务机上,创建递归文件夹 mkdir -p /usr/local/redis-cluster/133/data

每台服务机上不需要创建六个文件夹,只需要创建单个即可

5、在redis-cluster文件下创建bin文件夹

该文件夹用来存放集群运行脚本
mkdir /usr/local/redis-cluster/bin
然后在redis的安装包中取得相关的运行脚本,并拷入该bin文件夹中
cd /home/redis-5.0.5/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin

**注意:此bin文件只要在一台服务器节点中创建,不需要在每台服务器节点中创建,我这边是因为电脑虚拟机再增加一台可能会很卡,然后就只开了6台虚拟机。如果条件允许,开第七台虚拟机,存放集群运行脚本。
**
我这边将集群文件存放到了192.168.114.128节点上。

6、 安装redis或者复制一个redis实例


如果你在前面已经安装好redis,那么请把你的redis复制一份至/usr/local/redis-cluster/128
是每一个服务器下的该类文件中都需要一个redis实例
我这边安装好的目录为/usr/local/redis
cp -r /usr/local/redis /usr/local/redis-cluster/128


如果你前面并没有安装过redis,那么在指定redis安装目录时,指位置指到/usr/local/redis-cluster/128
最后一个文件夹 128。是根据你所创建的文件夹来命名的。
每一个服务器下的该类文件中都需要一个redis实例
make install PREFIX=/usr/local/redis-cluster/128
进入安装好的redis目录中,创建文件夹etc
mkdir /usr/local/redis-cluster/128/redis/etc
复制一份配置文件至redis实例中
cp /home/redis-5.0.5/redis.conf /usr/local/redis-cluster/128/redis/etc


7、修改配置文件

vim /usr/local/redis-cluster/128/redis/etc/redis.conf
修改内容如下:
redis改为后台启动
daemonize yes
设置访问密码
requirepass 111
绑定的IP为当前机器的IP
bind 192.168.114.128
数据文件存放路径设置
dir /usr/local/redis-cluster/128/data/
端口号设置,我这里因为使用六台虚拟主机,所以我端口号没变,你们可以根据自己的实际环境而改变
port 6379
pid文件设置,这里的6379一定要与当前服务机的redis端口号对应
pidfile /usr/local/redis-cluster/128/redis/run/redis_6379.pid
启动集群模式
cluster-enabled yes
设置集群配置文件,这里的6379也要与当前服务机的redis端口号所对应
cluster-config-file nodes-6379.conf
设置超时时间
cluster-node-timeout 15000
开启AOF日志记录
appendonly yes
设置日志文件
logfile “/usr/local/redis-cluster/128/redis/logs/redis.log”

注:如果你在前面配置过主从配置,那么请把replicaof注释或删除
这里的双引号需要注意一下,CSDN博客把英文状态的下的双引号改为了中文双引号,你们在使用的时候记得修改成英文下的双引号。
最后就是建意配置文件拷贝一下,然后改点参数,我这边连续修改了六个配置文件,眼睛痛。

文档替换命令

%s/128/129
命令说明:
%s/[你所需要被替换的字符]/[你所需要替换后的字符]

8、创建与配置文件相关的文件夹或文件

mkdir /usr/local/redis-cluster/128/redis/run/
touche /usr/local/redis-cluster/128/redis/run/redis_6379.pid
mkdir /usr/local/redis-cluster/128/redis/logs
mkdir /usr/local/redis-cluster/128/redis/logs/redis.log

9、在剩余的机子上重复6、7、8三个步骤

根据不同的机器,相关配置需要进行简单的修改,比如说文件夹,第一个机器为128,那么我这边的第二台为129,第三为130,以此类推。简单来说就是路径地址需要注意一下是否准确,ip是否与当前机器对应。

10、启动每台服务器的redis

启动每台服务器的redis,查看是否启动成功

/usr/local/redis-cluster/128/redis/bin/redis-server /usr/local/redis-cluster/128/redis/etc/redis.conf
/usr/local/redis-cluster/129/redis/bin/redis-server /usr/local/redis-cluster/129/redis/etc/redis.conf
/usr/local/redis-cluster/130/redis/bin/redis-server /usr/local/redis-cluster/130/redis/etc/redis.conf
/usr/local/redis-cluster/131/redis/bin/redis-server /usr/local/redis-cluster/131/redis/etc/redis.conf
/usr/local/redis-cluster/132/redis/bin/redis-server /usr/local/redis-cluster/132/redis/etc/redis.conf
/usr/local/redis-cluster/133/redis/bin/redis-server /usr/local/redis-cluster/133/redis/etc/redis.conf


验证方法一:
在每台机器上出入命令,查看redis是否启动成功
ps -ef|grep redis
redis进程信息
只要是出现了这种类似的信息说明配置成功。


验证方法二
进入redis控制台

/usr/local/redis-cluster/128/redis/bin/redis-cli -h 192.168.114.128 -p 6379 -a ‘111’
/usr/local/redis-cluster/129/redis/bin/redis-cli -h 192.168.114.129 -p 6379 -a ‘111’
/usr/local/redis-cluster/130/redis/bin/redis-cli -h 192.168.114.130 -p 6379 -a ‘111’
/usr/local/redis-cluster/131/redis/bin/redis-cli -h 192.168.114.131 -p 6379 -a ‘111’
/usr/local/redis-cluster/132/redis/bin/redis-cli -h 192.168.114.132 -p 6379 -a ‘111’
/usr/local/redis-cluster/133/redis/bin/redis-cli -h 192.168.114.133 -p 6379 -a ‘111’

输入ping,如果每台redis都返回pong,说明配置成功

11、对所有参与redis集群的节点开启6379、16379端口

开启6379、16379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=16379/tcp --permanent
更新防火墙规则
firewall-cmd --complete-reload
查看当前所开放的端口
firewall-cmd --zone=public --list-ports


当然你也可以选择关闭防火墙端口

临时关闭防火墙命令
systemctl stop firewalld


如果不开启对应端口,或者没有关闭防火墙
则会出现Waiting for the cluster to join一直在等待


原因:
redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
如redis端口为6379
则集群总线端口为16379
故,所有服务器的点需要开通redis的客户端连接端口和集群总线端口

12、输入创建集群的命令

/usr/local/redis-cluster/bin/redis-cli --cluster create 192.168.114.128:6379 192.168.114.129:6379 192.168.114.130:6379 192.168.114.131:6379 192.168.114.132:6379 192.168.114.133:6379 --cluster-replicas 1 -a 111
按下回车后记得输入yes


命令说明:
/usr/local/redis-cluster/bin/redis-cli:该运行文件存在于本文章中的第五步。
–cluster create:表示创建一个redis集群,需要注意的是前后注意空格。
–cluster-replicas 1:表示为集群中的每一个主节点指定一个从节点,即一比一的复制。需要注意的是前后注意空格。
-a 111:表示我每个redis节点都配置了密码,我的每台节点的redis节点密码都相同都为 111,如果你没有创建密码,那么不需要写入 -a 111,还有最后需要注意的是前后注意空格。


5.0的版本之前集群创建需要使用ruby脚本需要更多的操作,5.0之后可以使用redis-cli命令
所以在5.0之后我们不再需要安装以下插件
yum install ruby、yum install rubygems、gem install redis


注意代码行上的空格,我这边因为没有注意空格,然后就报了错误
Invalid address format: 1 无效的地址格式

13、开始创建集群

redis集群信息
这里展示了三主三备。
192.168.114.128、192.168.114.129、192.168.114.130均为master
192.168.114.131、192.168.114.132、192.168.114.133均为slave
slots为hash值的区间。

14、启动成功后的画面

启动成功后的画面

15、验证集群是否搭建成功

输入登陆命令,登陆到 192.168.114.128,一定要加入 -c,代表我当前登陆是集群模式登陆的
./redis-cli -c -h 192.168.114.128 -p 6379 -a '111’
输入查看集群命令
cluster nodes

redis集群信息2

发现搭建成功

16、键入值至redis集群中

插入数据
这里我插入了一个key为name的数据,现在会自动存储至 192.168.114.129中
证明我们搭建成功,没有问题。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值