標籤:伺服器
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 6379OK192.168.11.241:6379> INFO# Replicationrole:slavemaster_host:192.168.11.240master_port:6379master_link_status:upmaster_last_io_seconds_ago:1master_sync_in_progress:0slave_repl_offset:15slave_priority:100slave_read_only:1connected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0然後到主的上面查看:# redis-cli -h 192.168.11.240 192.168.11.240:6379> INFO# Replicationrole:masterconnected_slaves:1slave0:ip=192.168.11.241,port=6379,state=online,offset=456,lag=1master_repl_offset:456repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:2repl_backlog_histlen:455在主上寫一條指令:192.168.11.240:6379> SET key hello,worldOK在從上查看: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的比例,我們可以設定一主多從做讀寫分離!
本文出自 “把酒問蒼天” 部落格,請務必保留此出處http://79076431.blog.51cto.com/8977042/1755302
redis主從