文档章节

Redis读性能优化

苗永超
 苗永超
发布于 2016/04/29 02:08
字数 642
阅读 431
收藏 31

首先提一个问题,一个Redis进程每秒能处理的最大请求数目是多少?

答: 能处理的请求数目大概是10W/秒。使用pipeline后,处理请求数目可以达到50W/秒。(具体数值不是我测试的,我谷歌来的

言归正传,提升Redis读性能有两个方面: 数据查询方式优化 和 增加只读服务器。


A.

数据查询方式的优化有以下几个途径:

a. 建议使用pipeline查询;

b. 建议使用连接池;

c. 使用短结构优化内存占用时,不建议压缩列表的长度过大,会影响查询性能;

d. 数据结构方面,应使用最优的数据结果来使用。例如: 不建议把列表当集合使用;

 

B.

除了正确的使用数据查询方式以外,提升redis读取能力最简单的方法,就是添加只读从服务器

但是,主从服务器架构存在一个最棘手的问题: 主服务器挂掉。


C. 从服务器重同步问题

当存在多个从服务器从一个主服务器同步时,面临一个问题: 主服务器带宽占用过高,导致主服务器延迟变高,甚至网络中断,以上这个问题叫做服务器重同步问题(resync)。

解决重同步问题,核心是减少主服务器需要传送给从服务器的数据数量。 


一个方法是使用从服务器树,举例如下:

a. 常规情况1个主带9个从。

b. 从服务器树就是将服务器分为两层,顶层主机带三台从机,这三台从机构成一个中间层,三台从机再分别各自带三台从机。


使用从服务器树好处:

1.通过缓慢的公网(广域网)进行数据同步非常耗时耗资源,这种工作交给中间层服务器要好于交给顶层服务器;

使用从服务器树坏处:

1.树形网络拓扑结构增加了结构复杂度,当出现故障时,增加了处理难度; 


另一个方法是对网络连接进行压缩. (此方法我不太熟,没有实际操作过)

a. 使用ssh隧道进行连接,似乎OpenVPN是一个比较好的方法; 



转载请标明出处:http://my.oschina.net/justfairytale/blog/667902


© 著作权归作者所有

共有 人打赏支持
苗永超
粉丝 15
博文 57
码字总数 14075
作品 0
海淀
后端工程师
私信 提问
加载中

评论(7)

韩庚庚
韩庚庚
博主,有没有相关的教材学习一下
苗永超
苗永超

引用来自“ixiaohei”的评论

我命令就简单的一个一个的,没有连接一起的组,要pipeline,业务上很难做
我只有在那种一次请求上百万次的时候,才去使用pipeline,这种情况不用就太慢了,忍不了。平时其实我都懒得写pipeline。
苗永超
苗永超

引用来自“黑桃”的评论

用了pipeline,以后可能不好做shard
确实如此啊
苗永超
苗永超

引用来自“ixiaohei”的评论

另外有个问题,即使是达到redis 10w/s的qps,又能有几个产品能有这么高的请求量?
10w这个数字当然是理想情况才可能了,而且这个数字很不严谨的,我都没说服务器的配置是什么样的。
ixiaohei
ixiaohei
另外有个问题,即使是达到redis 10w/s的qps,又能有几个产品能有这么高的请求量?
ixiaohei
ixiaohei
我命令就简单的一个一个的,没有连接一起的组,要pipeline,业务上很难做
黑桃
黑桃
用了pipeline,以后可能不好做shard
云数据库redis版的性能测试

测试环境和命令: 阿里云VPC环境, 4 x (1核, 2G ECS) 用于运行codis proxy codis proxy后端slot均衡的接2个或4个阿里云redis实例 内网SLB连接4个codis proxy 只单纯测试单条读写, 命令如...

庆沉
2016/10/08
31
0
K-V数据库--nessDB

nessDB是一个小巧、高性能的、支持Redis协议的K-V数据库,使用标准C开发,支持Linux, BSD, OS X and Solaris 系统,无第三方依赖。 描述: 使用Bloom filter检查数据存在性 使用Level-LRU提升...

匿名
2011/10/21
4.1K
0
关于秒杀的系统架构优化思路

解决方案1: 将存库从MySQL前移到Redis中,所有的写操作放到内存中,由于Redis中不存在锁故不会出现互相等待,并且由于Redis的写性能和读性能都远高于MySQL,这就解决了高并发下的性能问题。...

萧小蚁
2016/12/20
50
0
使用capping和assembly提高去重系统的读性能

原文:Improving Restore Speed for Backup Systems that Use Inline Chunk-Based Deduplication, FAST‘13。 2013年的FAST会议开完了,HP实验室的研究员发表了一篇关于数据去重系统读性能的...

fomy
2013/10/09
0
8
redis主从问题,猿友们帮我瞅瞅

主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担。 这里的由服务器来承担是什么意思?我还没有配过主从

anguea
2017/06/01
68
1

没有更多内容

加载失败,请刷新页面

加载更多

5、redis分布式锁

参考链接:https://www.cnblogs.com/linjiqin/p/8003838.html 一:介绍 实现分布式锁有三种方式:1、数据库乐观锁,2、基于redis,3、基于zookeeper。 redis服务端是单线程操作,完美地避免了...

刘付kin
23分钟前
3
0
OSChina 周日乱弹 —— 我重新说

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享矢野立美的单曲《LOVE Theme from TIGA <M-2>》: 《LOVE Theme from TIGA <M-2>》- 矢野立美 手机党少年们想听歌,请使劲儿戳...

小小编辑
今天
64
5
Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
10
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
5
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部