https://blog.csdn.net/K881009/article/details/88988980
注意:
redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
如redis端口为7001
则集群总线端口为17001。
另外几台服务器的redis 向启动集群服务器发送:CLUSTER MEET ip地址 端口
清空redis:flushdb
重置redis:cluster reset
在linux系统上搭建Redis5.0.3集群,一下方法都是使用linux命令来执行的。
同时使用了下图三个软件。
第一个软件:创建虚拟机
第二个软件:查看虚拟机上的系统文件
第三个软件:链接虚拟机
具体使用方法,还需自行去百度学习一下,学习了也对自身有好处。
创建文件夹。
mkdir -p /usr/local/redis/redis-cluster/ //创建文件夹
cd /usr/local/redis/redis-cluster/ //定位目录位置
mkdir 6380 6381 6382 6383 6384 6385 //在定位的目录下创建这5个文件夹
1
2
3
安装wget (wget是一个从网络上自动下载文件的自由工具) 用来下载Redis5.0.3
../
yum -y install wget
1
2
解压
tar -zxvf redis-5.0.3.tar.gz
1
安装gcc(GCC 编译器是 Linux 下默认的 C/C++ 编译器)
yum -y install make gcc*
1
进入解压之后的目录
cd redis-5.0.3
1
编译安装 (使用prefix 指定一个安装位置)
make && make install PREFIX=/usr/local/redis
1
把redis.conf依次复制到各个文件夹下
cd ../
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6380
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6381
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6382
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6383
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6384
cp -r redis-5.0.3/redis.conf /usr/local/redis/redis-cluster/6385
1
2
3
4
5
6
7
依次修改redis.conf
vim /usr/local/redis/redis-cluster/6380/redis.conf
1
(1)修改 bind 修改成 0.0.0.0 。默认绑定本地地址,导致其它地方不可远程访问 改成局域网中的IP地址或者0.0.0.0所有ip都可以访问
(2)开启远程访问 protected-mode no(设置为非保护模式) 和 修改端口 port 6380。修改端口依次是 6380、6381、6382、6383、6384、6385 ,分别对应5个文件夹
(3)设置后台运行 daemonize yes(redis后台运行)
(4)设置pidfile存放在 run目录下的文件名 pidfile /var/run/redis_6380.pid(需要修改为 reids_{port}.pid 的形式)。文件名中的数字依次是: 6380、6381、6382、6383、6384、6385 ,分别对应5个文件夹。
(5)设置logfile存放在log目录下的文件名 logfile /var/log/redis_6380.log(需要修改为 reids_{port}.log的形式)。文件名中的数字依次是: 6380、6381、6382、6383、6384、6385 ,分别对应5个文件夹。
(6)设置redis集群密码 masterauth redis和 requirepass redis注意:所有节点的密码都必须一致。(也可以不设置,这里建议还是不要设置的好。不然后边链接都要输入密码。)
(7)设置开启AOF模式,指定持久化方式 appendonly yes
(8)设置启用集群模式 cluster-enabled yes,开启配置文件cluster-config-file nodes-6380.conf (其他文件设置对应的数字,按照设置的5个端口),超时时间 cluster-node-timeout 5000
文件编写完后,需要保存退出。先按 Esc 键,在输入 :wq! 。注意,这里的 “ : ” 是英文冒号
启动全部redis节点
第一中方法,逐一启动
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6380/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6381/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6382/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6383/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6384/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6385/redis.conf
1
2
3
4
5
6
第二种方法,设置redis_cluster_all_start.sh启动脚本,在/usr/local/redis/redis-cluster 文件夹下创建。
cd /usr/local/redis/redis-cluster
touch redis_cluster_all_start.sh //创建启动脚本
chmod u+x redis_cluster_all_start.sh //赋权
vim redis_cluster_all_start.sh //编写脚本
1
2
3
4
以下内容就是 redis_cluster_all_start.sh 脚本的内容
#!/bin/bash
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6380/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6381/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6382/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6383/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6384/redis.conf
/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-cluster/6385/redis.conf
1
2
3
4
5
6
7
8
9
10
11
12
统一启动全部redis 节点
cd /usr/local/redis/redis-cluster
./redis_cluster_all_start.sh
1
2
放行端口号 (防火墙关闭了的话,不需要这步)
firewall-cmd --zone=public --add-port=6380/tcp --permanent
firewall-cmd --zone=public --add-port=6381/tcp --permanent
firewall-cmd --zone=public --add-port=6382/tcp --permanent
firewall-cmd --zone=public --add-port=6383/tcp --permanent
firewall-cmd --zone=public --add-port=6384/tcp --permanent
firewall-cmd --zone=public --add-port=6385/tcp --permanent
firewall-cmd --reload
1
2
3
4
5
6
7
启动集群 注意:由于我们设置了redis集群的密码,所以要带上 -a redis(密码),之前配置的masterauth 密码
进入到/usr/local/redis/redis-5.0.3/src 目录下,拷贝一份 redis-cli 到 /usr/local/redis/redis-cluster 目录下
cd /usr/local/redis/redis-5.0.3/src
cp redis-cli /usr/local/redis/redis-cluster
1
2
创建集群
没有密码的情况下
cd /usr/local/redis/redis-cluster
./redis-cli --cluster create 192.168.6.135:6380 192.168.6.135:6381 192.168.6.135:6382 192.168.6.135:6383 192.168.6.135:6384 192.168.6.135:6385 --cluster-replicas 1
1
2
有密码的情况
cd /usr/local/redis/redis-cluster
./redis-cli --cluster create 192.168.6.135:6380 192.168.6.135:6381 192.168.6.135:6382 192.168.6.135:6383 192.168.6.135:6384 192.168.6.135:6385 --cluster-replicas 1 -a redis //结尾的redis 是密码。
1
2
查看redis是否启动成功
ps -ef | grep redis
1
查看redis端口开启情况
netstat -tnlp | grep redis //查看redis端口开启情况
1
连接 (注意:这里的ip地址为自身ip地址,请注意修改)
cd /usr/local/redis/redis-cluster
./redis-cli -c -h 192.168.6.131 -p 6380
1
2
打印集群信息
cluster info
1
如果出现一下的报错 “NOAUTH Authentication required” 是因为之前配置 redis.conf 文件时,设置了 requirepassword 这个密码
那么只要输入 auth “redis” 。注意双引号内是自己设置的密码。如果没有必要,就不要设置密码了。
输入完密码后,再输入 cluster info 打印集群信息
列出集群当前已知的所有节点(node),以及这些节点的相关信息
cluster nodes
1
————————————————
版权声明:本文为CSDN博主「K_HUANG」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/K881009/article/details/88988980