linux 安装reids集群

一、单节点部署redis集群

1、创建redis集群目录

在同一个主机中部署三主三从的redis集群,redis节点为7001-7006。

新建redis集群目录:mkdir -p /usr/local/redis-cluster,在该目录下创建6个目录:7001-7006,分别为6个redis节点的工作目录:

mkdir -p 7001 7002 7003 7004 7005 7006

2、安装gcc

redis进行源码安装,先要安装gcc,再make redis。执行以下命令安装redis:

yum -y install gcc gcc-c++ libstdc++-devel

3、安装ruby
执行以下命令安装ruby2.5,如果ruby版本过低,无法启动redis集群。

 yum install -y centos-release-scl-rh yum install -y rh-ruby25 scl enable rh-ruby25 bash

检验并查看ruby版本:

 ruby -v

最后执行如下命令:

gem install redis

4、下载并安装redis节点
从redis官网https://redis.io/下载redis最新版本redis-4.0.11。

解压redis:

 tar -zxvf redis-4.0.11.tar.gz

创建redis安装目录:

 mkdir -p /usr/local/redis

进入解压后的redis-4.0.11目录,执行make命令,将redis安装进/usr/local/redis:

 make install PREFIX=/usr/local/redis

将redis配置文件redis.conf复制到集群目录下:

 cp redis.conf /usr/local/redis-cluster

将redis安装后的bin目录复制进6个redis节点工作目录中:

 cp -r /usr/local/redis/bin /usr/local/redis-cluster/7001 cp -r /usr/local/redis/bin /usr/local/redis-cluster/7002 cp -r /usr/local/redis/bin /usr/local/redis-cluster/7003 cp -r /usr/local/redis/bin /usr/local/redis-cluster/7004 cp -r /usr/local/redis/bin /usr/local/redis-cluster/7005 cp -r /usr/local/redis/bin /usr/local/redis-cluster/7006

最后配置6个节点的配置文件redis.conf,配置修改如下:

#bind 127.0.0.1 protected-mode no daemonize yes cluster-enabled yes cluster-node-timeout 15000

屏蔽限制本地访问,在bind 127.0.0.1之前加#(同机器下,可能不需要改,未做测试)。

将redis.conf文件复制进7001-7006中:

 cp redis.conf 7001 cp redis.conf 7002 cp redis.conf 7003 cp redis.conf 7004 cp redis.conf 7005 cp redis.conf 7006

分别修改6个节点中的redis.conf中的port端口配置,分别配置成7001-7006。

配置好redis.conf后,便可以启动6个redis节点,分别在6个节点目录下执行如下命令启动6个节点:

 ./bin/redis-server ./redis.conf

执行ps -ef|grep redis可查看启动的6个节点。

5、启动redis集群
进入最开始解压出来的redis-4.0.11/src目录下,执行如下命令启动集群:

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

6、验证集群
进入任一redis节点,如进入7001节点:

进入7001目录:

 cd /usr/local/redis-cluster/7001

登录7001节点:

 ./bin/redis-cli -c -p 7001

写入一个数据:

 set redis cluster

之后进入其他节点,查看redis中的数据,如登录7005节点:

 ./bin/redis-cli -c -p 7005

查看redis数据:

 get redis 

二、多节点部署redis集群

1、服务器集群

三个节点都关闭防火墙:

 chkconfig iptables off systemctl stop iptables systemctl disable iptables systemctl stop firewalld systemctl disable firewalld

查看防火墙状态:

 systemctl status iptables systemctl status firewalld

2、安装gcc
如上。

3、安装ruby
如上。

4、配置redis节点
(1)、node-i(192.168.0.111)

(a).安装redis

创建redis目录:

 mkdir -p /usr/local/redis-i mkdir -p /usr/local/redis-cluster/7001 /usr/local/redis-cluster/7002

解压redis:

 tar -zxvf redis-4.0.11.tar.gz

进入redis-4.0.11目录,执行make命令,将redis安装在/usr/local/redis-i目录下:

 make install PREFIX=/usr/local/redis-i

复制redis.conf到redis集群节点目录下:

 cp redis.conf /usr/local/redis-cluster/7001 cp redis.conf /usr/local/redis-cluster/7002

进入/usr/local/redis-i目录,将生成的 bin目录复制到redis集群节点目录下:

 cp -r bin /usr/local/redis-cluster/7001 cp -r bin /usr/local/redis-cluster/7002

分别修改节点7001、7002的配置文件redis.conf,修改如下:

7001:

bind 192.168.0.111 protected-mode no port 7001 daemonize yes cluster-enabled yes cluster-node-timeout 15000

7002:

bind 192.168.0.111 protected-mode no port 7002 daemonize yes cluster-enabled yes cluster-node-timeout 15000

(b).启动redis节点

分别启动7001和7002节点:

分别在/usr/local/redis-cluster/7001/usr/local/redis-cluster/7002目录,执行如下命令:

 ./bin/redis-server ./redis.conf

通过ps命令查看启动的redis节点:

 ps -ef|grep redis

(2)、node-ii(192.168.0.133)

(a).安装redis

创建redis目录:

 mkdir -p /usr/local/redis-ii mkdir -p /usr/local/redis-cluster/7003 /usr/local/redis-cluster/7004

解压redis:

 tar -zxvf redis-4.0.11.tar.gz

进入redis-4.0.11目录,执行make命令,将redis安装在/usr/local/redis-ii目录下:

 make install PREFIX=/usr/local/redis-ii

复制redis.conf到redis集群节点目录下:

 cp redis.conf /usr/local/redis-cluster/7003 cp redis.conf /usr/local/redis-cluster/7004

进入/usr/local/redis-ii目录,将生成的 bin目录复制到redis集群节点目录下:

 cp -r bin /usr/local/redis-cluster/7003 cp -r bin /usr/local/redis-cluster/7004

分别修改节点7003、7004的配置文件redis.conf,修改如下:

7003:

bind 192.168.0.133 protected-mode no port 7003 daemonize yes cluster-enabled yes cluster-node-timeout 15000

7004:

bind 192.168.0.133 protected-mode no port 7004 daemonize yes cluster-enabled yes cluster-node-timeout 15000

(b).启动redis节点

分别启动7003和7004节点:

分别在/usr/local/redis-cluster/7003/usr/local/redis-cluster/7004目录,执行如下命令:

 ./bin/redis-server ./redis.conf

通过ps命令查看启动的redis节点:

 ps -ef|grep redis

(3)、node-iii(192.168.0.155)

(a).安装redis

创建redis目录:

 mkdir -p /usr/local/redis-iii mkdir -p /usr/local/redis-cluster/7005 /usr/local/redis-cluster/7006

解压redis:

 tar -zxvf redis-4.0.11.tar.gz

进入redis-4.0.11目录,执行make命令,将redis安装在/usr/local/redis-iii目录下:

 make install PREFIX=/usr/local/redis-iii

复制redis.conf到redis集群节点目录下:

 cp redis.conf /usr/local/redis-cluster/7005 cp redis.conf /usr/local/redis-cluster/7006

进入/usr/local/redis-iii目录,将生成的 bin目录复制到redis集群节点目录下:

 cp -r bin /usr/local/redis-cluster/7005 cp -r bin /usr/local/redis-cluster/7006

分别修改节点7005、7006的配置文件redis.conf,修改如下:

7005:

bind 192.168.0.155 protected-mode no port 7005 daemonize yes cluster-enabled yes cluster-node-timeout 15000

7006:

bind 192.168.0.155 protected-mode no port 7006 daemonize yes cluster-enabled yes cluster-node-timeout 15000

(b).启动redis节点

分别启动7005和7006节点:

分别在/usr/local/redis-cluster/7005/usr/local/redis-cluster/7006目录,执行如下命令:

 ./bin/redis-server ./redis.conf

通过ps命令查看启动的redis节点:

 ps -ef|grep redis

5、启动redis集群
以上步骤完成,6个redis节点都已经启动完成。现在启动redis集群,在任一服务器上都可以启动集群,进入最开始解压出来的redis-4.0.11目录的src子目录,执行如下命令启动redis集群:

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

6、验证集群
从任一主机进入任一redis节点,如从192.168.0.111主机中进入7001节点:

进入7001目录:

 cd /usr/local/redis-cluster/7001

登录7001节点:

 ./bin/redis-cli -c -h 192.168.0.111 -p 7001

写入一个数据:

 set redis cluster

之后进入其他节点,查看redis中的数据,如登录7005节点:

 ./bin/redis-cli -c -h 192.168.0.155 -p 7005

查看redis数据:

 get redis

三、第一次搭建启动集群 或者集群宕机后,再次重启遇到的问题总结

redis启动的命令放在/data/redis-4.0.11下面

startredis6379.sh 内容如下:

/xxx/redis-4.xxx/src/redis-server ./redis6379.conf

startredis7379.sh 内容如下:

/xxx/redis-4.xxx/src/redis-server ./redis7379.conf

redis集群启动步骤:

1、启动6379节点 startredis6379.sh
2、启动7379节点 startredis7379.sh
3、启动集群:startcluster.sh

集群启动失败归类:

1、如果提示失败如下:

[ERR] Sorry, can't connect to node xxx.xx.xx.xx:6379

原因:原因是因为6379节点没有启动,就先启动集群了
解决:先启动6379节点

2、如果提示失败如下:

[ERR] Node xxx.xx.xx.xx:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

原因:data文件夹下面的nodes-6379.conf里面已经绑定了主从关系,

nodes-6379.conf内容如下:

b01a658979a9eeffda2e4a806855d9d3efe54382 xxx.xx.xx.95:7379@17379 slave aca67d99d9268dcf0de06424f60a478a9c8a5cdc 0 1586262980000 4 connected 64dd6ff244534f2759234f449cf64c6d766027c1 xxx.xx.xx.95:6379@16379 slave f65f3c8d913bc26813926af87912273481427db3 0 1586262980000 7 connected aca67d99d9268dcf0de06424f60a478a9c8a5cdc xxx.xx.xx.94:6379@16379 master - 0 1586262978000 2 connected 5461-10922 6310b8d913946e4456c9013e8476e93c7aa2d5f2 xxx.xx.xx.94:7379@17379 slave d778fa046ab0a1c01225fea0a3762b876fe9dbdc 0 1586262980000 6 connected f65f3c8d913bc26813926af87912273481427db3 xxx.xx.xx.93:7379@17379 master - 0 1586262980418 7 connected 10923-16383 d778fa046ab0a1c01225fea0a3762b876fe9dbdc xxx.xx.xx.93:6379@16379 myself,master - 0 1586262980000 1 connected 0-5460 vars currentEpoch 7 lastVoteEpoch 7

解决:将nodes-6379.conf去掉即可(比如将data重命名为data1)(启动集群时会检测,如果不存在该文件,自动生成一份新的)

搭建过程中注意的问题:

3、记得redis.conf中的密码
1)requirepass xxx
2)masterauth xxx

4、 启动集群的两种方式:

redis老版本实用这种方式

/opt/redis-4.0.11/src/redis-trib.rb create –replicas 1 xxx.xx.xx.xx:6379 xxx.xx.xx.xx:6379 xxx.xx.xx.xx:6379 xxx.xx.xx.xx:7379 xxx.xx.xx.xx:7379 xxx.xx.xx.xx:7379

redis新版本实用

/usr/local/redis/bin/redis-cli –cluster create xxx.xx.xx.xx:6379 xxx.xx.xx.xx:6379 xxx.xx.xx.xx:6379 xxx.xx.xx.xx:7379 xxx.xx.xx.xx:7379 xxx.xx.xx.xx:7379 –cluster-replicas 1 -a password(替换成对应的密码)

参考博客:https://blog.csdn.net/sealir/article/details/82669813

原文链接:https://blog.csdn.net/u011159417/article/details/103408425

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7164

(0)
上一篇 2022年8月26日 00:08
下一篇 2022年8月26日 01:51

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml