redis主從

Redis主從複製原理:

經過把這個RDB文件或AOF文件傳給slave服務器,slave服務器從新加載RDB文件,來實現複製的功能!redis

複製的話:主服務器能夠有多個從服務器!!!  不只這樣從服務器還能夠有從服務器,能夠作成星狀的結構!bash

複製的話也不會阻塞進程,一樣fork一個子進程來作!服務器

 

複製的原理:ide

當創建一個從服務器後,從服務器會想主服務器發送一個SYNC的命令,主服務器接收到SYNC命令以後會執行BGSAVEspa

而後保存到RDB文件,而後發送到從服務器!收到RDB文件而後就載入到內存!orm

 

最先不支持增量,到2.8以後就支持增量了!進程

Redis主從配置:

配置很是簡單:
ip

我要把: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的比例,咱們能夠設置一主多從作讀寫分離!
相關文章
相關標籤/搜索