經過把這個RDB文件或AOF文件傳給slave服務器,slave服務器從新加載RDB文件,來實現複製的功能!redis
複製的話:主服務器能夠有多個從服務器!!! 不只這樣從服務器還能夠有從服務器,能夠作成星狀的結構!bash
複製的話也不會阻塞進程,一樣fork一個子進程來作!服務器
複製的原理:ide
當創建一個從服務器後,從服務器會想主服務器發送一個SYNC的命令,主服務器接收到SYNC命令以後會執行BGSAVEspa
而後保存到RDB文件,而後發送到從服務器!收到RDB文件而後就載入到內存!orm
最先不支持增量,到2.8以後就支持增量了!進程
配置很是簡單:
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的比例,咱們能夠設置一主多從作讀寫分離!