Redis之主从复制

本文介绍了如何设置Redis伪集群,包括复制配置文件、修改端口和文件路径、启动从机以及建立主从关系。通过SLAVEOF命令使从机连接主机,并展示了主从同步的工作原理,强调了配置未持久化可能导致主从关系丢失。此外,还提到了全量复制和增量复制的过程,以及在从机上只读不可写的特性。
摘要由CSDN通过智能技术生成

Redis伪集群的实现:

1.复制redis.conf文件,修改相应配置

[root@iZwz92v9xcjopi734c76bdZ etc]# cp redis.conf redis80.conf 
1.修改端口号
2.修改pid文件
3.修改log日志文件
4.修改dump.dbf文件

2.在从机上启动redis-server

[root@iZwz92v9xcjopi734c76bdZ bin]# redis-server /etc/redis80.conf

3.查看redis运行情况

ps aux | grep redis

结果:

[root@iZwz92v9xcjopi734c76bdZ bin]# ps aux | grep redis
root       30125  0.1  1.1 276712 22652 ?        Ssl  Dec06   1:29 /bin/redis-server *:6379
root       66276  0.0  0.5  23560 11572 pts/0    S+   13:27   0:00 redis-cli
root       67417  0.0  0.9 274152 18148 ?        Ssl  13:53   0:00 redis-server *:6380
root       67422  0.0  0.0 221460   848 pts/3    R+   13:53   0:00 grep --color=auto redis

4.认主机当老大

默认条件下,每台Redis服务器都是主机,一般情况下只需配置从机就行了

127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6380> info replication
# Replication
role:slave #当前角色是从机
master_host:127.0.0.1 #主机的host
master_port:6379 #主机端口号
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:14
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:93f9651b946af22f23e99744e134b5102f892714
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:14
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:14
127.0.0.1:6380> 

5.主写从读(从不可以读)

主机的信息如下:

127.0.0.1:6379> keys *
 1) "\xac\xed\x00\x05t\x00\x02gy"
 2) "xj:name"
 3) "gtl"
 4) "\xac\xed\x00\x05t\x00\x03gyl"
 5) "lis"
 6) "money"
 7) "list1"
 8) "sa"
 9) "gy"

从记可以获取,但不可以写入

127.0.0.1:6380> get gy
"User(name=gyl, id=2)"
127.0.0.1:6380> set wrnm sd
(error) READONLY You can't write against a read only replica.
127.0.0.1:6380> 

最后

注意!!!

1.命令行配置重启服务就没救主从关系,就会重新变回主机。因为没有写入redis.conf配置文件里面。

2.但是主机一旦变回从机就能立马可以获取到主机里的数据。

3.设置密码的要在从机的redis.conf配置里设置masterauth属性
如:

masterauth  123456    #`123456`是密码

复制原理

Slave 启动成功连接到 master 后会发送一个sync同步命令Master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。

全量复制slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制Master 继续将新的所有收集到的修改命令依次传给slave,完成同步
但是只要是重新连接master,一次完全同步(全量复制)将被自动执行! 我们的数据一定可以在从机中看到!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值