这里是创建了一个目录名为master-slave,然后在目录内分别创建目录名为master与slave并赋值redis的配置文件到这2个目录下。Linux系统安装redis的可以看看这篇文章linux安装redis服务。
[root@localhost redis4]# mkdir master-slave [root@localhost redis4]# cd master-slave [root@localhost master-slave]# mkdir master slave [root@localhost master-slave]# cp /opt/redis4/redis.conf master [root@localhost master-slave]# cp /opt/redis4/redis.conf master [root@localhost master-slave]# vi master/redis.conf [root@localhost master-slave]# vi slave/redis.conf
修改master的redis.conf如下几个配置
protected-mode no port 6379 #这里是master的端口,slave的调整为7000 daemonize yes #允许后台启动 pidfile "/var/run/redis_6379.pid" #这里pid不能重复 requirepass 123456 #我这里启用了密码
修改slave的redis.conf如下几个配置
protected-mode no port 7000 daemonize yes #允许后台启动 pidfile "/var/run/redis_7000.pid" #这里pid不能重复 requirepass 123456 #我这里启用了密码 slaveof 127.0.0.1 6379 #这里的ip与端口是指主节点的配置。 masterauth 123456 #这里是配置主节点的密码。
启动2个redis服务,我这里写了2个shell脚本,一个是启动脚本一个是停止脚本。
启动脚本内容:
#!/bin/bash cd /opt/redis4/master-slave/master redis-server ./redis.conf cd /opt/redis4/master-slave/slave redis-server ./redis.conf
停止脚本内容:
#!/bin/bash redis-cli -a 123456 -h 127.0.0.1 -p 6379 shutdown #-a是密码 redis-cli -a 123456 -h 127.0.0.1 -p 7000 shutdown
执行如下指令,发现2台redis服务已经成功启动。
[root@localhost master-slave]# ./start [root@localhost master-slave]# [root@localhost master-slave]# ps -ef|grep redis root 1271 1248 0 Jun07 pts/1 00:00:00 tail -200f redis.log root 6516 1 0 00:28 ? 00:00:00 redis-server 127.0.0.1:6379 root 6521 1 0 00:28 ? 00:00:00 redis-server 127.0.0.1:7000 root 6526 6353 0 00:28 pts/2 00:00:00 grep --color=auto redis
然后连接redis服务器,使用info命令查看,发现报错。由于我配置了密码,所以需要输入密码即可解决此错误,然后使用info Replication查看主从状态,发现connected_slaves已经有从节点了。
[root@localhost master-slave]# redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> info NOAUTH Authentication required. 127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379> info Replication # Replication role:master connected_slaves:1 slave0:ip=127.0.0.1,port=7000,state=online,offset=168,lag=1 master_replid:d77ee47c336e66ddb3c4308e76df1a479558717a master_replid2:0000000000000000000000000000000000000000 master_repl_offset:168 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:168 127.0.0.1:6379>
验证主从复制,首先已验证主从都没有关于a的数据。在6379服务上设置a的值,然后在7000服务上是可以获取到这个key为a的值,此时说明我们的主从集群部署完毕。
127.0.0.1:6379> get a (nil) 127.0.0.1:6379> exit [root@localhost master-slave]# redis-cli -p 7000 127.0.0.1:7000> get a (nil) 127.0.0.1:7000> exit [root@localhost master-slave]# [root@localhost master-slave]# redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379> set a 123456 OK 127.0.0.1:6379> exit [root@localhost master-slave]# redis-cli -h 127.0.0.1 -p 7000 127.0.0.1:7000> get a "123456" 127.0.0.1:7000>
文献参考:redis官网。



