主从复制也叫一主二仆(或多仆)

前提:编辑:redis.conf的

daemonize yes

appendonly no

有密码的将密码那一行注释掉,为了方便测试

实现/搭建:进入你的redis的配置文件redis.conf的文件下中,复制redis的redis.conf文件到一个自创的文件夹中,vim编辑,内容为:

include /这里放自创文件夹的路径/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb

注意:每个文件的端口号都不一样

之后到redis的bin目录启动三个配置文件

查看机子的状态:(命令)(只有启动端口后才能)

info replication

为从机添加主机:

slaveof 主机ip 主机端口号

在这里说明,从机只能读,主机可读可写

上代码:

我的redis地址:/usr/local/redis

我的redis.conf地址:/usr/local/redis/etc/redis.conf

我的redis启动文件:/usr/local/redis/bin/redis-server   /usr/local/redis/etc/redis.conf

我新建的文件夹:/usr/local/myredis

复制redis的redis.conf文件到一个自创的文件夹中:

cp /usr/local/redis/etc/redis.conf /usr/local/myredis/redis.conf

进入我创建的文件夹中:cd /usr/local/myredis

直接编写,会自动生成一个文件:vim redis6379.conf

内容为:

include /usr/local/myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb

之后继续编写:vim redis6380.conf和redis6381.conf,内容一样,把6379改为6380或6381就行了

接下来启动三个端口号

/usr/local/redis/bin/redis-server   /usr/local/myredis/redis6379.conf

/usr/local/redis/bin/redis-server   /usr/local/myredis/redis6380.conf

/usr/local/redis/bin/redis-server   /usr/local/myredis/redis6381.conf

注意:现在在Xshell再复制两个窗口。同时,要在myredis文件夹路径中

接下来进入端口号:

第一个窗口

/usr/local/redis/bin/redis-cli -p 6379

第二个窗口:

/usr/local/redis/bin/redis-cli -p 6380

第三个窗口:

/usr/local/redis/bin/redis-cli -p 6381

进入到端口状态后:输入

info replication

可查看该机子是主机还是从机

为你当前的机子添加主机:slaveof   主机IP   主机端口号

例如:slaveof 127.0.0.1 6379

输入了之后,当前机子变为从机

现在,你就可以开始玩了!

例如像什么:数据同步等等。。

特点

1.如果从机挂掉了,重新启动则会再变成单独独立的状态(最初的样子,相当于没有分配角色),但是不会自动变为主从模式。
2.如果当前机子挂掉了,再启动然后让它变为从机,则会将主机的数据从头全部复制过来
2.如果主机挂掉了,那么从机还是从机,不会上位变成主机,重启之后,还是主机

原理:

1.当从机连接上主机之后,从机向主机会发送进行数据同步的消息
2.主机接到从机发送过来的同步消息后,把主机数据进行持久化,
   存到rdb文件中,然后把rdb文件发送到从机,从机拿到rdb文件进行读取
3.每次主机进行写操作后,会主动和从机进行数据同步
4.从机只在第一次主动请求同步,后面都是由主机发起的

以上都是今天所学,为了巩固知识所写。