- Redis是C语言开发,安装Redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
yum -y install gcc automake autoconf libtool make
- 解压、编译、安装
tar -zxvf redis-5.0.0.tar.gz
cd redis-5.0.0
make && make install
- 新建文件夹redis_cluster
mkdir redis_cluster
cd redis_cluster
mkdir 7000 7001 7002 7003 7004 7005
- 拷贝redis.conf 文件到 7000文件夹下
cp redis.conf /usr/local/redis_cluster/7000
- 修改一下属性
# 关闭保护模式用于官网访问
protected-mode no
port 7000
# 开启集群模式
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
#后台启动
daemonize yes
pidfile /var/run/redis_7000.pid
logfile "7000.log"
# 用于连接主节点的密码
masterauth fengjiaxing
# 设置redis密码,各个节点操持一致
requirepass fengjiaxing
- 依次进行复制配置文件,并修改
cp ./7000/redis.conf ./7001/
cp ./7000/redis.conf ./7002/
cp ./7000/redis.conf ./7003/
cp ./7000/redis.conf ./7004/
cp ./7000/redis.conf ./7005/
- 全局替换,将7000端口,全部替换为7001端口,7002 7003 7004 7005 依次修改
:%s+7000+7001+g
- 将redis目录下的src文件夹复制到redis_cluster 文件夹下
cp -r ./src/ /usr/local/redis_cluster
- 进入到
cd /usr/local/redis_cluster/
目录依次启动服务器
./src/redis-server ./7000/redis.conf
./src/redis-server ./7001/redis.conf
./src/redis-server ./7002/redis.conf
./src/redis-server ./7003/redis.conf
./src/redis-server ./7004/redis.conf
./src/redis-server ./7005/redis.conf
- 查看是否启动成功
ps -ef |grep redis
- 启动集群
./src/redis-cli --cluster create -a fengjiaxing 127.0.0.1:7000 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 --cluster-replicas 1
- 启动结果
- 集群的验证,启动某一个客户端
./src/redis-cli -c -p 7000 -a fengjiaxing
- 查看集群信息
info replication
- 查看集群主从关系
cluster nodes
- 关闭集群
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7000 -a fengjiaxing shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7001 -a fengjiaxing shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7002 -a fengjiaxing shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7003 -a fengjiaxing shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7004 -a fengjiaxing shutdown
/usr/local/redis_cluster/src/redis-cli -c -h 127.0.0.1 -p 7005 -a fengjiaxing shutdown
错误总结
关于集群启动报错问题
(error) MOVED 原因和解决方案
[ERR] Node 192.168.161.131:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.