ubuntu redis配置主从复制(2)

主从复制原理(主负责写,从负责读):

1.从服务器连接主服务器,发送SYNC命令
2.主服务器接收到SYNC命名后,开始执行bgsave命令生成RDB文件并使用缓冲区记录此后执行的所有写命令
3.主服务器basave执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令
4.从服务器收到快照文件后丢弃所有旧数据,载入收到的快照
5.主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令
6.从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令

一、两个服务器

Master:192.168.109.130
Slave:192.168.109.131

二、安装redis

三、配置主从

1.Master和slave都设置:
vim /etc/redis/redis.conf
bind 0.0.0.0  #设置0.0.0.0表示可以被其他的服务器访问,如果设置为127.0.0.1则表示只能被本机访问。

在这里插入图片描述

#此项设置可以将日志打出,便于查看,在生产环境时可以设置为yes
daemonize no #表示设置为前台启动,默认为yes表示以守护进程的方式启动

在这里插入图片描述

2.重启redis

我们可以打开redis的日志文件,实时查看redis的运行状态,然后重启redis

tail -f /var/log/redis/redis-server.log
service redis restart

在这里插入图片描述

3.从节点向主节点发送连接请求
#slaveof master port
例:slaveof 192.168.109.130 6379		#从节点执行

1)配置文件: 在从服务器的配置文件中加入:slaveof <masterip> <masterport>
2)启动命令: redis-server启动命令后加入 --slaveof <masterip> <masterport>
3)客户端命令: Redis服务器启动后,直接通过客户端执行命令:slaveof <masterip>
    <masterport>,则该Redis实例成为从节点。

这时,从slave节点可以看到连接信息:
在这里插入图片描述
从master可以看到连接信息
在这里插入图片描述

4.验证是否成功

Master执行:

set name zhangsan

在这里插入图片描述

Slave执行:

get name

在这里插入图片描述

至此,redis主从复制搭建成功~~~

四、离开主节点(从节点执行)

#将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
SLAVEOF NO ONE

Guess you like

Origin blog.csdn.net/weixin_42551369/article/details/103493346