我们都知道redis一般作为一个远程的缓存。但是缓存毕竟是在一个服务,如果一段时间内出现很多请求,redis保存了很多信息,恰好这段时间里面没有进行持久化保存,redis服务出现了宕机就会丢失数据。那么我们就需要使用一个备份的redis来保存数据。这里就引入了主从复制。
我们使用一个redis作为主节点(master节点:对外提供访问的节点),我们需要再启动子节点(slave)去同步主节点(master节点)的数据,来备份数据。
那我们如何去实现主从复制。
前提条件:redis已经安装完成。
1:创建三个目录:
[root@VM-0-4-centos redis_cluster]# mkdir master #创建主节点的目录
[root@VM-0-4-centos redis_cluster]# mkdir slave1 #创建第一个子节点的目录
[root@VM-0-4-centos redis_cluster]# mkdir slave2 #创建第二个子节点的目录
[root@VM-0-4-centos redis_cluster]# ls #查看目录是否创建成功
master slave1 slave2
2:将redis.conf 文件分别在三个目录下复制一份
[root@VM-0-4-centos redis_cluster]# cd master/
[root@VM-0-4-centos master]# ls
redis.conf sentinel.conf
[root@VM-0-4-centos master]# cd ../slave1
[root@VM-0-4-centos slave1]# ls
redis.conf
[root@VM-0-4-centos slave1]# cd ../slave2
[root@VM-0-4-centos slave2]# ls
redis.conf
3:我们修改三个的目录的redis.conf文件
主节点redis.conf的配置:
bind 0.0.0.0 代表所有都可以连接
requirepass:连接的密码
port 6391
从节点1和从节点2的配置一样:
配置从节点的端口
port 6392(从节点1)
port 6393(从节点2)
#配置主节点的地址以及端口 这里我是一台服务器,不同端口启动
replicaof 127.0.0.1 6391
#
##主节点的密码
masterauth "123456"
进入redis的bin目录,然后利用这三个配置文件启动
主节点
[root@VM-0-4-centos bin]# ./redis-server /usr/local/redis/redis_cluster/master/redis.conf
从节点
[root@VM-0-4-centos bin]# ./redis-server /usr/local/redis/redis_cluster/slave1/redis.conf
[root@VM-0-4-centos bin]# ./redis-server /usr/local/redis/redis_cluster/slave2/redis.conf
然后利用可视化工具去连接三个redis服务,发现只能主节点可以去增加,2个从节点只能是只读,不能增加,当主节点新增的时候,从节点会读取主节点的内容。
从节点不能新增,只会去主节点获取信息