Redis的主从复制

标签: 数据库应用 nosql | 发表时间:2011-12-20 13:43 | 作者:Litrin
出处:http://www.litrin.net

作为MySQL对于Web应用的优化之一,主从复制(Master-slaver)是普遍被接受的,Redis作为当下一个no-sql的解决方案,很自然的将这个特性引入。同时将“操作便捷”作为一大目标,Redis的主从复制更为简单,甚至不需要额外的操作,完全可以在两台热机之间进行。

首先,准备2套Redis主机,本例192.168.0.1为主,192.168.0.2为从。为了保障不会出现稀奇古怪的毛病,要求2台主机配置文件中

  • databases ,dbs数量,决定了select命令的最大数(分块数量)
  • maxmemory,最大内存使用,决定了整个系统的容量

两个参数的配置要一致,系统版本尽量保证一致(我测试过不一致的版本也可以同步,但不保证所有的情况下都可以同步)其余的数据不强制要求一致。

用客户端连接slaver主机的redis并操作

redis-cli -h 192.168.0.2

redis 192.168.0.2:6379> slaveof 192.168.0.1 6379
OK

就这么方便!

这时,可以在输入info命令,查看master_host的配置:

redis 192.168.0.2:6379>info

master_host:192.168.0.1

为保证主机每次启动都保持slave的状态,则可以在redis.conf中增加一行slaveof 192.168.0.1 6379 即可,也非常简单。

作为redis这类nosql来说,并发的压力并不像MySQL那样迫切,何况数据没有关联,一旦出现并发的瓶颈,可以很方便的将数据拆分成多个主机。那对于标准的web应用,主从的意义是什么?

个人理解:

  1. 解决Redis内存回写磁盘一瞬间的阻塞问题。
    Redis 是内存数据库,数据都在内存中,仅在改变时才会回写。但在磁盘回写的时候,由于需要拷贝内存镜像,整个处于阻塞状态,服务器不会做任何相应,在数据少的情况下阻塞时间也很少,可以忽略。但数据达到G这个级别之后的阻塞绝对是致命的。而且这个阻塞由Redis特性决定,无法彻底解决。
    通过主从这种方式对任务进行分工,主机负责写入,通过配置文件中的save选项,减少回写甚至直接取消数据回写,将数据持久化的任务交由slaver主机进行。一旦宕机,由slaver主机上的数据恢复出master。
  2. 数据热迁移。
    这个很好理解了, 数据迁移示意图

 

相关 [redis 复制] 推荐:

Redis的主从复制

- - 开源小站
作为MySQL对于Web应用的优化之一,主从复制(Master-slaver)是普遍被接受的,Redis作为当下一个no-sql的解决方案,很自然的将这个特性引入. 同时将“操作便捷”作为一大目标,Redis的主从复制更为简单,甚至不需要额外的操作,完全可以在两台热机之间进行. 首先,准备2套Redis主机,本例192.168.0.1为主,192.168.0.2为从.

redis的主从复制机制

- - CSDN博客云计算推荐文章
这边介绍一下Redis的主从复制,关于主从的概念这边就不介绍了的. 1、redis主从复制的特点. Master可以拥有多个Slave;. 多个Slave还可以连接其他的Master;. 同步数据时,Master可以继续处理Client请求;. 首先,Slave与Master建立连接,发送sync同步命令;.

Redis复制与可扩展集群搭建

- jeff - NoSQLFan
Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中. 下面是一篇介绍Redis复制原理的文章,文章作者为新浪微博的田琪同学(@摇摆巴赫). 本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题.

JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)

- - 企业架构 - ITeye博客
MySQL到Redis数据复制方案. 无论MySQL还是Redis,自身都带有数据同步的机制,像比较常用的 MySQL的Master/Slave模式 ,就是由Slave端分析Master的binlog来实现的,这样的数据复制其实还是一个异步过程,只不过当服务器都在同一内网时,异步的延迟几乎可以忽略.

动手实践Redis主从复制、Sentinel主从切换、Cluster分片

- - 掘金 后端
Redis 提供的如下技术「Redis Sentinel『主从切换』、Redis Cluster『分片』」,有效实现了 Redis 的高可用、高性能、高可伸缩性,本文对以上技术进行亲自动手实践. Redis Sentinel「主从切换」. 监控主从节点的在线状态,并根据配置自行完成切换「基于raft协议」.

Redis 负载监控——redis-monitor

- - ITeye资讯频道
redis-monitor是一个Web可视化的 redis 监控程序. 使用 Flask 来开发的,代码结构非常简单,适合移植到公司内网使用. redis 服务器信息,包括 redis 版本、上线时间、 os 系统信息等等. 实时的消息处理信息,例如处理 command 数量、连接总数量等. 内存占用、 cpu 消耗实时动态图表.

Redis 起步

- - 博客园_首页
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章:. Redis是一个key-value存储系统. 和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型.

redis 配置

- - 谁主沉浮
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写). # 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB. # daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes. # 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址.

Cassandra代替Redis?

- - Tim[后端技术]
最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例. 而这篇 百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例. 考虑到到目前仍然有不少网友在讨论Redis的用法问题,Redis是一个数据库、内存、还是Key value store?以及Redis和memcache在实际场景的抉择问题,因此简单谈下相关区别.

redis 部署

- - CSDN博客云计算推荐文章
一、单机部署 tar xvf redis-2.6.16.tar.gz cd redis-2.6.16 make make PREFIX=/usr/local/redis install  #指定安装目录为/usr/local/redis,默认安装安装到/usr/local/bin. # chkconfig: 2345 80 10       #添加redhat系列操作系统平台,开机启动需求项(运行级别,开机时服务启动顺序、关机时服务关闭顺序) # description:  Starts, stops redis server.