按照要求需要搭建redis集群,3主3从,一共3台服务器
首先我们要知道集群部署的话,要修改哪些配置文件.我们会在文件目录当中找到一个redis.cnf的文件,这个文件就是我们需要修改的(如果是哨兵模式启动的话需要修改sentinel.conf文件).
现在让我们开始吧:
tar -zxvf redis.tar.gz
mkdir redis-cluster
cd redis-cluster
(上面步骤都需要在三个服务器中同步)
这里我们是按照集群的端口号进行的目录创建,你可以按照自己的风格进行创建(创建六个文件夹就行,每台服务器两个)
mkdir 7001 7002? 111.111.11.11
mkdir 7003 7004? 111.111.11.12
mkdir 7005 7006? ?111.111.11.13
cp redis.conf? ?7001/redis_7001.conf (cp命令: cp /文件位置/文件名? /想要拷贝的文件位置/新的文件名)
cd redis-cluster/7001
vi reids_7001.conf
daemonize yes
port 7001(这里你想设置什么就设置什么,记得后面保持一致即可)
pidfile “/当前7001/文件夹路径/7001/redis_7001.pid"
logfile “/当前7001/文件夹路径/7001/redis_7001.log”
protected-mode??no? ? ? ? ?
(当protected-mode被设置为yes时,Redis服务器将只接受来自本地地址(127.0.0.1或::1))
bind 111.111.11.11(你当前服务器ip)
cluster-enabled yes (打开集群)
cluster-config-file nodes-7001.conf? (设置集群配置文件)
cluster-node-timeout 15000 (最大连接时间)
dir “/当前7001所在路径/7001/” (指定数据目录)
例如:我的7001端口是主节点,那么7002端口我设置成从节点,就需要修改7002配置文件
redis_7001.conf配置文件: masterport 7001 (将7001设置成主节点)
redis_7002.conf配置文件: masterport 7001 (将7001设置成主节点)
以此类推......
修改完成
cp?redis_7001.conf /7002文件夹所在目录/7002/redis_7002.conf? (当前服务下)
scp redis_7001.conf? root@111.111.11.12:/7003文件夹所在目录/7003/redis_7003.conf?? (这个命令是将这个文件拷贝到另一台服务器)
输入密码
scp redis_7001.conf? root@111.111.11.13:/7005文件夹所在目录/7005/redis_7005.conf??这个命令是将这个文件拷贝到另一台服务器)
输入密码
切换服务器,在111.111.11.12服务器上执行:
cp?redis_7003.conf /7004文件夹所在目录/7004/redis_7004.conf??
切换服务器,在111.111.11.13服务器上执行:
cp?redis_7005.conf /7006文件夹所在目录/7006/redis_7006.conf??
将复制好的配置文件修改对应的服务器信息
bind 111.111.11.12
port 7003
......
启动6个redis实例
./redis/redis-cluster/src/redis-servicer /redis/redis-cluster/7001/redis_7001.conf &
(启动实例需要找到reids-service文件,redis/redis-cluster/src/redis-servicer 这里是你redis-service文件路径??/redis/redis-cluster/7001/redis_7001.conf 这个是你配置文件路径,每个实例的启动都会对应一个配置文件? & 代表后台启动 ./代表当前文件夹下)
./redis/redis-cluster/src/redis-servicer /redis/redis-cluster/7002/redis_7002.conf &
./redis/redis-cluster/src/redis-servicer /redis/redis-cluster/7003/redis_7003.conf &
./redis/redis-cluster/src/redis-servicer /redis/redis-cluster/7004/redis_7004.conf &
./redis/redis-cluster/src/redis-servicer /redis/redis-cluster/7005/redis_7005.conf &
./redis/redis-cluster/src/redis-servicer /redis/redis-cluster/7006/redis_7006.conf &
ps - ef|grep redis
/redis/src/redis-cli --cluster create 111.111.11.11:7001 111.111.11.11::7002 111.111.11.12::7003 111.111.11.12::7004 111.111.11.13::7005 111.111.11.13::7006 --cluster-replicas 1
输入yes
(注意这一条命令,/redis/src/redis-cli 找到redis-cli文件 ,--cluster create redis集群创建命令 ,注意地址为部署服务ip,?--cluster-replicas 1??用于指定为集群中的每个主节点创建一个从节点。这意味着在集群中,每个主节点都将有一个对应的从节点,从而形成主从复制的关系)
cd /redis/src
./redis-cli -h 111.111.11.11 -p 7001 (进入到redis中)
config set masterauth "redis@123"? (设置主节点redis密码)
设置 成功后会显示ok
config set requirepass "redis@123"? (设置redis密码)
设置 成功后会显示ok
auth "redis@123"? (验证密码)
设置 成功后会显示ok
config rewrite (重写redis.conf文件)
重写成功后会显示ok
exit (退出登录)
注意:你也可以直接在rediscover.conf文件中直接设置密码
masterauth "redis@123"
requirepass "redis@123"
然后进入其他5个节点设置密码(7002-7006)