绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
磊哥测评之数据库篇:云Redis vs 自建Redis
2020-01-02 13:52:32

本文转载自 磊哥测评

本期我们来看一个常用的数据库:Redis。

提起Redis大家可能都比较熟悉,但如果问起Redis能做什么,大多数人的印象可能就是缓存。Redis是nosql数据库中比较流行的一种,它具有开源、支持网络、基于内存、单线程等特性。那么在哪些场景会用到Redis呢,主要是下面这么几类。

1.缓存、发布订阅、排行榜

这两年比较火热的直播,成千上万的弹幕在同一时刻发出来,需要排序和显示。礼物一秒几十刷,排行榜更新。基于内存、单线程的Redis就是为此类场景而生的。

2.计数器

这两年火热的微博,明星结婚一条微博几百万赞,实时统计实时推送的热门排行,京东的月销榜单,上新排行。Redis提供的有序集合数据类构能实现各种复杂的排行榜应用。

3.分布式、队列

基于Redis实现的分布式锁、共享session、队列。


看完上面的应用介绍,相信大家对Redis的应用场景都有个大概的了解,闲话少说,接下来我就动手来做一下Redis测试。


Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能。关于Redis-benchmark的使用入门,大家可以自己搜一下。


这次数据库测试我买了腾讯云Redis4.0集群版。也在8核32G的CVM上进行了自建,分别作对比测试,下面是本次测试的详细配置。



测试我使用两台腾讯云CVM分别连接云Redis和自建Redis,由于Redis集群版对片数有限制,买不到对应内存的集群版,我通过限制自建Redis的使用内存到24G来对齐两边的内存。

测试指令:redis-benchmark -hxxx -pxxx -axxx  xxx-t set,get -r 10000000 -cxxx -n 10000000其中通过-c来调整线程数大小,测试命令为get、set


首先测试连通性:

然后使用redis-benchmark进行测试,两个客户端同时开始,QPS求和,延时取平均值:

下面我们就来看一下测试结果:



完爆了有木有,这里有同学可能有疑惑了?同样内存,云Redis能爆自建那么多?不科学啊。我也觉得不科学,显然这里的性能瓶颈并不是在内存上,而是卡在了别的地方如CPU。所以说自建Redis时需要考虑的问题很多,对于性能瓶颈的排查也比较困难。QPS并不是Redis重要的指标,下面我们来看更具参考意义的指标:延时



先给大家解释一下,Redis-benchmark提供了指令时延的分布,0.9999水位线表示百分之99.99的操作延时都低于某个时间,反映了数据库在测试时的总体延时。


测到这里,可能有些朋友要说了,从延时看,好像自建使用也还可以接受。那我就要跟大家讲讲我的感受了。


首先就是搭建Redis集群,光是为了在部署一个单机多节点的集群,笔者就翻遍了各种教程,修改配置文件、启动集群、同步测试,遇到的版本、未知错误的坑一大堆,实在是心累啊。更不用提自建遇到延时和性能问题时的排查和分析,有时恐怕需要有经验的DBA大神才能搞定,其部署和管理成本真心高。


第二点,笔者在准备Redis测试的时候,在选择哪一个版本作为参考对象的时候居然选择困难了。为什么呢,因为选择实在是太多了!光是社区版引擎就分为三类:


  • 单机版:支持单节点集群弹性变配,提供超高性价比,提供1GB - 60GB规格。

  • 主从版:主从实时同步,主节点故障时系统自动秒级切换,从节点接管业务,全程自动且对业务无影响,主从架构保障系统服务具有高可用性,提供0.25GB - 60GB规格。

  • 集群版:灵活的选择分片数量、分片容量以及副本数量,提供业务无感知的扩容和缩容服务,提供12GB - 4TB的规格,支持千万级QPS 性能。


单机、主从版提供大内存到60G规格,缓存场景完全可以覆盖。对要求更高的场景使用集群版,高提供到4TB!我不信邪的试了一下:



好吧,真的是4TB,此外还有高达6G的网络吞吐量,千万级QPS真的不在话下。

除此之外呢?

还有方便的系统监控:



还有方便的分片大小和数量调整,弹性扩缩容;有主从热备、自动容灾。这么多方便的特性加起来,价格是多少呢,笔者查了8*4G的Redis集群版包月的价格:



再来看看同样内存的CVM(8核32G),需要多少:



好吧,原来自建的成本也这么高!不得不说一句:带宽是真的贵啊!


到这里本次Redis测试就接近尾声了,其实本次测试的过程不够专业哈,无论是对自建Redis,还是对云Redis,想要测到性能上限,至少需要数台设备一起压测,不过即使这样,我们还是感受到了Redis的魅力。Redis本身并不复杂,一个小巧简单的Key-Value型数据库,却在当今的主流数据库中占据一席之地。天下武功唯快不破,大概就是这个道理吧。


在这期测试中我还有一个很大的发现,那就是:购买云数据库绝不仅仅是购买了数据库本身,更重要的是购买了具有“云”的特性的服务,比如弹性伸缩、系统监控、数据迁移,用户在享受这些服务的同时却无需付出任何运维和部署的成本。所以,那些对Redis有刚需的同学们,就不要再硬撑着自建集群啦,上云之后,一身轻松。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

腾讯云数据库
创建时间:2019-12-03 15:25:28
本栈主要分享云数据库技术前沿资讯、实战案例、数据库产品功能、应用场景和行业应用解读,帮助您根据实际业务需求进行数据库选型,更好的运维管理数据库。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 腾讯云数据库
    栈主

小栈成员

查看更多
  • 栈栈
  • 小尾巴鱼
  • youou
  • ?
戳我,来吐槽~