Redis主從複製配置

1、Redis的Replication:

    這裏首先須要說明的是,在Redis中配置Master-Slave模式真是太簡單了。相信在閱讀完這篇Blog以後你也能夠輕鬆作到。這裏咱們仍是先列出一些理論性的知識,後面給出實際操做的案例。
    下面的列表清楚的解釋了Redis Replication的特色和優點。
    1). 同一個Master能夠同步多個Slaves。
    2). Slave一樣能夠接受其它Slaves的鏈接和同步請求,這樣能夠有效的分載Master的同步壓力。所以咱們能夠將Redis的Replication架構視爲圖結構。
    3). Master Server是以非阻塞的方式爲Slaves提供服務。因此在Master-Slave同步期間,客戶端仍然能夠提交查詢或修改請求。
    4). Slave Server一樣是以非阻塞的方式完成數據同步。在同步期間,若是有客戶端提交查詢請求,Redis則返回同步以前的數據。
    5). 爲了分載Master的讀操做壓力,Slave服務器能夠爲客戶端提供只讀操做的服務,寫服務仍然必須由Master來完成。即使如此,系統的伸縮性仍是獲得了很大的提升。
    6). Master能夠將數據保存操做交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操做。
    
2、Replication的工做原理:

    在Slave啓動並鏈接到Master以後,它將主動發送一個SYNC命令。此後Master將啓動後臺存盤進程,同時收集全部接收到的用於修改數據集的命令,在後臺進程執行完畢後,Master將傳送整個數據庫文件到Slave,以完成一次徹底同步。而Slave服務器在接收到數據庫文件數據以後將其存盤並加載到內存中。此後,Master繼續將全部已經收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執行這些數據修改命令,從而達到最終的數據同步。
    若是Master和Slave之間的連接出現斷連現象,Slave能夠自動重連Master,可是在鏈接成功以後,一次徹底同步將被自動執行。html

 

3、準備環境:web

Master:10.20.189.218     Centos 5.6
Slave: 10.20.189.219     Centos 5.6redis

 

4、如何配置Replication數據庫

主控:服務器

1.啓動服務架構

[root@localhost ~]# redis-server /etc/redis_persistent_2.6.confapp

2.查看主控配置ide

[root@localhost redis]# cat /etc/redis_persistent_2.6.conf |grep -v "^#"|grep -v "^$"
daemonize yes #redis 之後臺進程運行,默認爲NO
pidfile /var/run/redis_persistent.pid
port 6379
timeout 0  #保持客戶端長鏈接
loglevel notice #日誌級別,分爲debug,verbose,notice,waring
logfile  /data/logs/redis/redis_persitent.log
databases 16測試

save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes #存儲到本地數據庫是否壓縮,默認爲yes
rdbchecksum yes
dbfilename dump.rdb
dir /data/redis
slave-serve-stale-data yes
slave-read-only yes
slave-priority 100
 requirepass Kingsoft_Kss2012
 maxclients 200
appendonly no
appendfilename redis_persistent.aof
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 100000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60ui

從控:

3.把以上配置文件拷貝,而後加入2行便可啓動服務:

slaveof 10.20.189.218 6379

masterauth Kingsoft_Kss2012

[root@localhost ~]# redis-server /etc/redis_persistent_2.6.conf

 

5、應用示例:

主控:

Redis主從複製配置

從控:

Redis主從複製配置

 

額外的命令:

#清空當前數據庫中的全部Keys。
redis 127.0.0.1:6379> flushdb
OK
#刪除其中一個測試Key,並查看刪除後的結果。
redis 127.0.0.1:6379> del mykey

(integer) 1

[root@localhost redis]# redis-cli -h 10.20.189.218 -a Kingsoft_Kss2012 info |grep -A 3 'Replication'
# Replication
role:master
connected_slaves:1
slave0:10.20.189.219,6379,online


相關鏈接:

數據容災:http://blog.csdn.net/xiangliangyu2008/article/details/8165644

主從持久化測試:http://ylw6006.blog.51cto.com/470441/1077260

redis主從keepalive: http://ylw6006.blog.51cto.com/470441/1086455

相關文章
相關標籤/搜索