Redis集群学习地址:http://blog.csdn.net/dc_726/article/details/11694437
Windows-32系统下搭建Redis集群
一.Redis主从同步原理:我们称之为Redis Replication,就是将主数据同步到从数据
1.1.>同一个Master可以将数据同步至多台Slave
1.2.>Slave同样可以接受其它Slave的链接和同步请求,这样可以有效地分载Master的同步压力
1.3.>Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求
1.4.>Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据
1.5.>为了分载Master的读操作压力,Slave服务器可以为客户端提供只读操作的服务,写服务仍然必须由Master来完成。即便如此,系统的伸缩性还是得到了很大的提高。
1.6.>Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。
1.7.>在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。
1.8.>如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
二.主从配置:
2.1.>Redis的主从Replication配置非常简单,假设我Redis安装包在(D:\Redis\MasterAndSlave):只需将原配置文件新拷贝一份后,做少量修改。
2.1.1.>修改端口:主配置文件redis_master.conf中配置的是默认端口:port 6379,那么修改从配置文件redis_slave1.conf的端口为port 6380
2.1.2.>指定从数据机对应的主数据机:在redis_slave1.conf配置文件中添加如下配置
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
2.1.3>若主数据机设置了访问密码:123456,则需要在从配置文件redis_slave1.conf中添加如下配置
# masterauth <master-password>
masterauth 123456
2.1.4.>备注:若配置多台从数据机,一次添加从数据机配置文件,修改你想要的配置模式
三.测试验证
3.1.>启动主从数据服务器(先启动主然后启动从):Windows系统下cmd命令切换到Redis安装目录:D:\Redis\MasterAndSlave>
D:\Redis\MasterAndSlave>redis-server.exe redis_master.conf
图1.启动主数据服务器
D:\Redis\MasterAndSlave>redis-server.exe redis_slave1.conf
图2.启动从数据服务器
3.2.>启动客户端接入
3.2.1.>连接主数据服务器:D:\Redis\MasterAndSlave>redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456 (备注:-h为ip地址,-p为端口,-a为访问密码)
D:\Redis\MasterAndSlave>redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
图3.客户端查看主数据的key(redis 127.0.0.1:6379> keys *)
3.2.2>客户端连接从数据服务器:D:\Redis\MasterAndSlave>redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
图3.客户端查看从数据的key(redis 127.0.0.1:6379> keys *)
备注:客户端访问主数据机和从数据机的key显示是一样的,说明在启动从数据服务器的时候就已经将数据进行了同步。
3.2.3>在主数据服务器set master 6378,然后在从数据服务器上查看如下图
四.Redis主从和HA配置:
4.1.>