您的位置:首页 > 数据库 > Redis

redis主从

2016-03-25 17:51 453 查看

Redis主从复制原理:

通过把这个RDB文件或AOF文件传给slave服务器,slave服务器重新加载RDB文件,来实现复制的功能!复制的话:主服务器可以有多个从服务器!!! 不仅这样从服务器还可以有从服务器,可以做成星状的结构!
复制的话也不会阻塞进程,同样fork一个子进程来做!

复制的原理:
当建立一个从服务器后,从服务器会想主服务器发送一个SYNC的命令,主服务器接收到SYNC命令之后会执行BGSAVE
然后保存到RDB文件,然后发送到从服务器!收到RDB文件然后就载入到内存!

最早不支持增量,到2.8之后就支持增量了!

Redis主从配置:

配置非常简单:

我要把:192.168.11.241 6379作为192.168.11.240的从只需要一条命令

192.168.11.241:6379> slaveof 192.168.11.240 6379
OK
192.168.11.241:6379> INFO
# Replication
role:slave
master_host:192.168.11.240
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:15
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

然后到主的上面查看:
# redis-cli -h 192.168.11.240
192.168.11.240:6379> INFO
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.11.241,port=6379,state=online,offset=456,lag=1
master_repl_offset:456
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:455

在主上写一条指令:
192.168.11.240:6379> SET key hello,world
OK
在从上查看:
192.168.11.241:6379> GET key
"hello,world"   #可以看到主从已经同步

从2.61的时候!从是仅读的
192.168.11.241:6379> SET key1 33033
(error) READONLY You can't write against a read only slave.
192.168.11.241:6379> #现实工作场景中,写和读是1:10的比例,我们可以设置一主多从做读写分离!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器