一、安装redis
1、下载redis
cd /data
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
2、 解压
tar -zxvf redis-5.0.5.tar.gz
3、安装 gcc 环境
yum install gcc-c++
4、编译
cd /data/redis-5.0.5/
make
5、安装
cd /data/redis-5.0.5/src
make install
6、修改配置文件
vi /data/redis-5.0.5/redis.conf
1)、注释掉 bind 127.0.0.1
2)、将 protected-mode 属性改为 no ,关闭保护模式,不然会阻止远程访问
3)、将 daemonize 属性改为 yes ,后台启动
redis安装完成
相关命令
redis根目录下执行
启动redis ./redis-server redis.conf
关闭redis ./redis-server shutdowm
查看redis状态 ps -ef | grep redis
关闭所有redis进程 pkill redis
二、 RedisCluster 集群搭建 (端口号分别为:7001~7006)
1、cd data
mkdir redis-cluster (新建集群文件夹)
cd redis-cluster
mkdir 7001 (新建第一个端口号文件夹)
make install PREFIX=/var/redis-cluster/7001 (安装在7001文件夹下),如图
2、拷贝redis.conf文件
cp /data/redis-5.0.5/redis.conf /data/redis-cluster/7001/bin
1)修改redis.conf配置文件中的端口号 port 7001
2) 修改redis.conf配置文件,修改 cluster-enable yes
3、复制其余端口号文件夹,如图。
注意:修改每个配置的文件的端口号
4、启动所有redis实例
可编写批处理脚本快速启动
cd 7001/bin
./redis-server redis.conf
cd ..
cd ..
cd 7002/bin
./redis-server redis.conf
cd ..
cd ..
...........
chmod u+x start.sh (赋写和执行的权限)
./start.sh (执行启动RedisCluster)
检查文件启动状态,如图启动完成。
5、创建redis集群
在任意一个端口号文件夹的bin目录下执行
./redis-cli --cluster create 192.168.92.150:7001 192.168.92.150:7002 192.168.92.150:7003 192.168.92.150:7004 192.168.92.150:7005 192.168.92.150:7006 --cluster-replicas 1
可通过任意端口bin目录下的nodes.conf文件,查看集群状态情况
6、连接客户端
查看集群节点状态
三、扩容集群节点
1、cp -r 7001 7007
同样redis.conf配置文件修改端口号
执行 ./redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
如图,7007加入集群
启动7007redis,查看集群状态
2、hash槽重新分配
./redis-cli --cluster reshard 127.0.0.1:7007
如图,输入节点就是上图中7007的节点ID
查看分配结果。
3、添加7008从节点
复制7008文件夹
cp -r 7007 7008
修改配置文件中端口号,启动7008redis
执行命令 ./redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7007 --cluster-slave --cluster-master-id 7f68f8e4cb691c18628734826d01997bee5c7062
扩容完成。
四、遇到的问题。
集群搭建完毕后,用JedisCluster连接集群时报错 No reachable node in cluster。
原因是搭建集群时候,用了127.0.0.1 创建集群,应该用虚拟的ip地址192.168.92.150创建集群。
重新搭建步骤:
1)、关闭redis集群 pkill redis
2)、删除所有节点下的 nodes.conf 和dump.rdb 文件
通过写批处理快速删除
cd 7007/bin
rm -rf nodes.conf
rm -rf dump.rdb
cd ..
cd ..
.........
3)、重启所有redis ./start.sh
4)、在任意端口bin目录下执行
./redis-cli --cluster create 192.168.92.150:7001 192.168.92.150:7002 192.168.92.150:7003 192.168.92.150:7004 192.168.92.150:7005 192.168.92.150:7006 192.168.92.150:7007 192.168.92.150:7008 --cluster-replicas 1
完成。
注意: 客户端程序在连接集群时候,需要关闭虚拟机的防火墙 systemctl stop firewalld。