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

相关文章
相关标签/搜索