主从复制也叫一主二仆(或多仆)
前提:编辑: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.从机只在第一次主动请求同步,后面都是由主机发起的
以上都是今天所学,为了巩固知识所写。