您的位置:首页 > 数据库 > Redis

Ubuntu 12.10下Redis主从复制配置

2014-02-25 11:24 411 查看

Ubuntu 12.10下Redis主从复制配置


一、 原理

 1.1 redis特点

    Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面是关于redis主从复制的一些特点:
     1.master可以有多个slave

     2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构
     3.主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。相反slave在初次同步数据时
    则会阻塞不能处理client的请求。
     4.主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,比如sort操作可以使用slave来处理。也可以用来做简单的数据冗余
     5.可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化。

1.2 主从复制的过程

       当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。无论是第一次同步建立的连接还是连接断开后的重新连 接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。后台进程完成写文件 后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上。接着master就会把缓存的命 令转发给slave。而且后续master收到的写命令都会通过开始建立的连接发送给slave。从master到slave的同步数据的命令和从 client发送的命令使用相同的协议格式。当master和slave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。

二、 配置

下面我演示下怎样在多台服务器上进行Redis数据主从复制。

提供2台服务器

我有2台ubuntu 虚拟机,如下:
     10.10.20.107     master服务器
     10.10.20.139     slave服务器

从服务器配置文件(redis.conf)修改

     bind  10.10.20.139
    slaveod 10.10.20.107 6379





主服务器配置文件(redis.conf)修改,图略:

     bind  10.10.20.107

注意:
     如果是在一台机器上面配置主从关系,那么还需要修改从服务器的默认端口号,同样也在redis.conf中进行修改。

三、测试:

1、如果先启动slave服务器,则会报下面的错误:



2、正常启动master服务器和slave服务器
master服务器:



slave服务器:



     slave服务器启动后,会向master服务器请求更新数据。这样你在master服务器set的数据会备份到slave服务器中。

在master服务器中设置数据:



在slave服务器中获取数据:



   

参考文档:
     http://www.cnblogs.com/weafer/archive/2011/09/20/2182750.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu Redis