Redis 2.6 Redis 2.8 与ssdb的简单对比
2015-11-24 10:11
555 查看
根据Redis 两个版本的测试结果对比得出以下结论
一、Redis 2.6主从同步在网络闪断的情况下会自动开启新的端口进行重新链,同时会进行一下操作:
1、断开链接的从会向主发送SYNC命令
2、然后主fork进程导出rdb文件发送到从
3、从接收到完整的数据后,清空Redis内数据然后在从RDB中恢复
但是根据测试结果发现以下问题:
1、多个主从关系同时断开的时候,主导出RDB文件时,会占用大量内存
2、从接收到完整数据后,恢复数据的时候,会清空数据,这时候由于Redis数据量很大,目前10G左右内存恢复速度大约1分钟左右,这一分钟内,很多请求无法获取数据
3、在从RDB恢复数据的过程中,部分请求会被阻塞,导致请求超时(目前报警无法获取数据根次有关)
二、Redis 2.8.8 没有发现以上问题,因为Redis 2.8链接闪断重新连接后,从会从断开之前的主从同步进度开始继续同步,不会有全量恢复的问题
三、Redis 2.8 和 Redis 2.6 在进行save操作的时候,save过程中所有的请求都会被阻塞,导致前端请求失败,所以不要再查询的从上进行save操作
根据以上得出建议:
1、Redis 升级到 2.8 以上,保证数据主从同步时候的可用性
2、不要直接在Redis从或主上进行save操作,可以按王彬的建议在关键节点增加新的从用于save备份使用
3、建议优化Redis存储,单个端口存储数据不要过大,这样可以保证单个端口挂掉数据数据时候的速度,和影响面积
Redis 2.8和SSDB性能对比
SSDB 1.6.8.6
顺序写 : 1.645 ms/op 59.4 MB/s
随机写 : 1.679 ms/op 58.2 MB/s
顺序读 : 1.286 ms/op 75.9 MB/s
随机读 : 1.225 ms/op 79.7 MB/s
rpush : 1.546 ms/op 63.2 MB/s
lpop : 1.303 ms/op 74.9 MB/s
Redis 2.8.8
顺序写 : 1.617 ms/op 60.4 MB/s
随机写 : 1.214 ms/op 80.4 MB/s
顺序读 : 1.156 ms/op 84.5 MB/s
随机读 : 1.153 ms/op 84.7 MB/s
rpush : 1.222 ms/op 79.9 MB/s
lpop : 1.153 ms/op 84.7 MB/s
以下测试,是测试的某个业务接口,所以不代表Redis的性能,需要由以下多种情况的对比,来得到结论。
Redis 2.6 直接查询主时候的 压测信息
?
Redis 2.6 直接查询主并且有从正在wait_bgsave时候的 压测信息
?
Redis 2.6 查询从时候的 压测结果
?
Redis 2.6 查询从并且 由于网络闪断 正在与主进行 同步操作
?
Redis 2.8.8 查询从时候的 压测结果
?
Redis 2.8.8 查询从并且 由于网络闪断 正在与主进行 同步操作
?
一、Redis 2.6主从同步在网络闪断的情况下会自动开启新的端口进行重新链,同时会进行一下操作:
1、断开链接的从会向主发送SYNC命令
2、然后主fork进程导出rdb文件发送到从
3、从接收到完整的数据后,清空Redis内数据然后在从RDB中恢复
但是根据测试结果发现以下问题:
1、多个主从关系同时断开的时候,主导出RDB文件时,会占用大量内存
2、从接收到完整数据后,恢复数据的时候,会清空数据,这时候由于Redis数据量很大,目前10G左右内存恢复速度大约1分钟左右,这一分钟内,很多请求无法获取数据
3、在从RDB恢复数据的过程中,部分请求会被阻塞,导致请求超时(目前报警无法获取数据根次有关)
二、Redis 2.8.8 没有发现以上问题,因为Redis 2.8链接闪断重新连接后,从会从断开之前的主从同步进度开始继续同步,不会有全量恢复的问题
三、Redis 2.8 和 Redis 2.6 在进行save操作的时候,save过程中所有的请求都会被阻塞,导致前端请求失败,所以不要再查询的从上进行save操作
根据以上得出建议:
1、Redis 升级到 2.8 以上,保证数据主从同步时候的可用性
2、不要直接在Redis从或主上进行save操作,可以按王彬的建议在关键节点增加新的从用于save备份使用
3、建议优化Redis存储,单个端口存储数据不要过大,这样可以保证单个端口挂掉数据数据时候的速度,和影响面积
Redis 2.8和SSDB性能对比
SSDB 1.6.8.6
顺序写 : 1.645 ms/op 59.4 MB/s
随机写 : 1.679 ms/op 58.2 MB/s
顺序读 : 1.286 ms/op 75.9 MB/s
随机读 : 1.225 ms/op 79.7 MB/s
rpush : 1.546 ms/op 63.2 MB/s
lpop : 1.303 ms/op 74.9 MB/s
Redis 2.8.8
顺序写 : 1.617 ms/op 60.4 MB/s
随机写 : 1.214 ms/op 80.4 MB/s
顺序读 : 1.156 ms/op 84.5 MB/s
随机读 : 1.153 ms/op 84.7 MB/s
rpush : 1.222 ms/op 79.9 MB/s
lpop : 1.153 ms/op 84.7 MB/s
以下测试,是测试的某个业务接口,所以不代表Redis的性能,需要由以下多种情况的对比,来得到结论。
Redis 2.6 直接查询主时候的 压测信息
?
?
?
?
?
?
相关文章推荐
- 京东云实践:浅谈Redis主从复制
- redis基本数据类型
- ubuntu 部署 redis 主从节点配置
- ubuntu 安装 redis集群
- Redis作者谈Redis应用场景
- Redis入门
- Redis持久化
- REDIS源码中一些值得学习的技术细节01
- Redis内存回收:LRU算法
- linux下redis下载安装
- redis 持久化与备份策略
- 用redis做超时判断 感觉写的很有意思
- Redis 起步
- Redis介绍
- Redis集群方案(codis)
- Redis简介
- Redis学习笔记3-本机java程序调用虚拟机redis
- redis cluster 集群 安装 配置 详解
- 本地电脑安装和配置Redis操作客户端
- 用Redis bitmap统计活跃用户、留存