开发者社区> Roin123> 正文

已经触碰到Redis的性能边缘?看看久经考验的Redis企业版吧

简介: Redis作为NoSQL最受欢迎的数据库之一,在国内市场长期占据Key-Value NoSQL市场的榜首。它的高性能,易用性和提供的常用数据结构极大的简化了开发人员和用户的开发和使用,能够更好更快的构建出客户系统。
+关注继续查看

Redis作为NoSQL最受欢迎的数据库之一,在国内市场长期占据Key-Value NoSQL市场的榜首。它的高性能,易用性和提供的常用数据结构极大的简化了开发人员和用户的开发和使用,能够更好更快的构建出客户系统。

3月11日,Redis企业版(Tair)& 专属主机组将召开重磅新品发布会!

性能提升高达3倍,TCO最高降低90%!十年磨一剑,打造旗舰级缓存服务,邀您一同见证商业和技术的创新!


Redis在使用时也有一些短处,经常遇到的有:

1、没有管控系统。Redis只提供一个存储核心,无论是生存周期管理还是参数配置都需要自己开发。

2、单线程模型,容易卡住。Redis使用了无锁的单线程模型来工作,但是如果有一个特别慢的查询,那么就会整体卡住Redis本身,使判活失败导致实例不可用。

3、集群版和扩缩容不完善。Redis本身提供了集群版功能,但是在大集群下并不完善;用户更习惯使用proxy代理来管控集群。变配和扩缩容的难度非常大。

4、监控和审计缺失。对于高速NoSQL数据库而言,需要有更完善的基础设施来支撑。不仅包括完善的监控,告警系统,还有日志、诊断及审计等,完整得搭建服务平台非常繁琐。

由于Redis经常作为高速内存存储和缓存使用,一般用于用户数据链路的关键在线业务。如果Redis有了问题会直接影响用户的产品功能和用户体验。缺乏必要的管理和监控,没有对Redis核心引擎做增强,一旦遇到问题用户的业务就很难快速发现,快速处理和恢复。

简而言之,Redis很难做到“开箱即用”,要在引擎核心和管控系统做大量工作。

1、云Redis企业版

正如上文中提到的Redis的不足,阿里云最早将Redis放到公有云的最基本出发点就是解决“有”和“无”的问题,提供完善的开箱即用的功能,和平滑扩缩容的能力。社区版Redis无论是主备版本还是集群版本都完全兼容Redis所有命令,用户能够很快的迁移并快速部署自己的业务服务。

阿里云是国内最早将Redis商业化的公司之一,也是国内对Redis社区贡献最大的实体。如在新发布的Redis-6.0RC中,aliyun的commit贡献仅次于作者。其中很多核心的改进如短链接优化,正则匹配效率等已经发布至官方。

01.png

对于小型应用服务来说,阿里云Redis社区版已经足够。

02.png

2、云Redis 企业版(Tair)

阿里在内部大型系统诸如电商(淘宝,天猫)、优酷、高德等使用Redis非常早,但发现Redis在支撑大型或者超大型服务上的能力还是有所欠缺的,主要问题有:

1、单线程Redis有很明显的C10K问题,即在大链接状态下抗冲击能力很差。大型和超大型应用动辄就有一万或者几万进程连接Redis,一个冲激响应或者一个慢查询就可能导致连接数雪崩。

2、要求单分片有更强的服务能力。Redis社区版的一个很大的问题是一个Redis进程在O(1)的操作大致有10~13w OPS的服务能力,在极端和突然场景下仍旧不够,如常用的数据结构和命令。

3、数据结构模块(Module)。Redis提供的基础的Hash、List、Set等是通用的是对通用互联网环境的总结,而在阿里和大型企业有着更多的模块的需求。引入新的特定的数据结构模块能够极大的简化用户开发,并大幅提升用户系统的性能。

4、混合存储。针对大容量低访问但对RT(latency)不敏感的应用,使用混合存储不但能大幅降低用户的成本,还能提供更优秀的持久化能力和数据可靠性。

5、另外,与Redis社区版不同,客户也需要一个长期维护的稳定版本,保证用户业务的持续被集成的能力。

03.png

对于企业版来讲,在完全继承社区版能力上,着重解决应用运行得“好”,用户开发得“爽”的问题,解决用户在深度使用Redis的痛点和瓶颈。

01、Tair和Redis

Tair团队是阿里集团最核心的团队之一,负责整个阿里的缓存和高速存储体系。MemCache/Redis/图数据库GDB都是Tair团队将阿里内部成熟的产品孵化到云上,服务公有云和专有云客户。

云Redis企业版就是Tair3.0。它将阿里多年来在高速存储技术再次输出到云上,打造对内对外一致的服务,使得我们云上客户也能够享受到阿里技术的红利,再次突破技术的桎梏,为用户业务的高速发展保驾护航!
04.png

02、性能增强版

性能增强版Redis即RDB3.0,旨在为用户提供更强大的服务能力和灵活的构建能力,主要包括:
多线程Redis可以突破Redis单机性能极限,对于常用的数据结构加速可达三倍(400-450K OPS)。支持高达数万连接的冲击,足以应对大型的活动如热播,秒杀等场景。

社区高版本Redis6.0 RC虽然也支持多线程,但是IO架构上与性能增强版不同,但仍未解决C10K和大链接冲击问题

05.png

03、混合存储版

混合存储版Redis即PDB3.0,它使用磁盘来存储用户的数据,并提供了高度的Redis兼容力。它特别适合访问量并不大但有大量数据存储的应用场景。
混合存储Redis很好解决了存储成本与性能的的平衡问题:经常访问的数据缓存在内存中,这样做既提升了存储的经济型,也保证了对热数据的访问效率。

高效的换入换出通道,能够将用户的热请求数据前置到内存中,能够让业务应用获得更好的时延体验。

06.png

由于新硬件的引入,存储和高速NoSQL数据库正处于变革期。混合存储将持续将业内最先进的设备如NVM,RDMA等加速至系统引擎,能够让云上用户尽快享受到最新技术带来的产品优势,从容的应对未来的挑战。

04、数据结构模块(modules)

数据结构模块(Module)提供了更多常见的新数据类型,能够让用户更灵活快速的构建出高效服务。这些模块已经在阿里内部广泛使用多年,非常具有代表性和特色,其中包括:

CAS/CAD:提供原redis string命令的compare-and-swap/compare-and-delete能力,可用于原子交换、分布式锁等场景。尤其是分布式锁这个场景,阿里集团的大多数分布式锁都是使用SETNX/CAD/CAS来实现的。

07.png

TairString:支持并发访问的String类型,每个String都携带version版本号,可用于并发更新,和乐观锁等场景

TairHash:大幅改良了Redis hash类型的不足,为每个field(子key)都携带了超时(TTL)和版本号(version),用户可以非常方便的构建账号系统,安全审计规则、流控器等场景

08.png

TairBloom:完全兼容RedisBloom,提供高性能的可伸缩的布隆过滤器(bloomfilter),可用于机器学习、爬虫系统等。

09.png

TairDoc:完全兼容reJSON模块,提供JSON格式的结构化存储。TairDoc具备更强大的功能,诸如同时支持JSON Pointer和JSON Path两种语法、支持JSON到XML/YAML格式的转换等。特别适合在前端和配置中心类应用中使用。

10.png

TairGis: 重量级的专业GIS模块,提供了点、线、面之间的相交、包含等关系运算,弥补了Redis原生geo数据结构只能做点位置运算的不足。可以用户替换PostGIS+缓存场景,特别适合地图、物流、电子围栏(点和多边形的地理位置关系)、地理勘探等应用场景,高德菜鸟等很多高性能地理位置业务很多都是构建于TairGIS之上。比如最近的疫区检测,通过输入疫区的地理位置围栏,就可以判断路线是否经过(线段与多边形是否相交)
11.png

3、总结

随着云上客户的高速发展,用户已经逐步发展并触摸到了社区Redis的能力的边缘。同时,Tair作为阿里原创的高性能内存数据库产品,也已经逐步完成了“企业版Redis应该是什么形态”这个问题的探索,并在阿里集团的各个部门进行了研发与充分的验证。

从2016年起的双11大促和每次促销活动以及线上的各项互动游戏、优酷世界杯、高德出行节,历次大麦的抢购、推荐与推送、菜鸟的每一次大数据路线仿真运算都与企业版Redis的高性能和极高的可靠性息息相关。

值得一提的是,Redis在国内的使用方式与国际市场并不完全相同。在国际市场上,它更多的被当作“缓存”来使用,这是它的定位。而在国内,更多的被当作内存数据库来使用。这本身就对企业版Redis提出了更高的要求。这也是阿里云Redis后续持之努力的方向。

请大家持续的关注企业版Redis(Tair),明天Redis企业版(Tair)& 专属主机组将召开重磅发布会,点击阅读原文即可观看!我们也希望大家给我们更多的反馈和使用建议。谢谢大家!

直播预告

点我预约

Redis企业版(Tair)& 专属主机组

重磅新品发布会

3月11日(周三)15:00-16:00

性能提升高达3倍

TCO最高降低90%

十年磨一剑

打造旗舰级缓存服务

邀您一同见证商业和技术的创新!

redis.JPG

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29214 0
NRedis-Proxy 高性能Redis 中间件服务原理解析
受飞凡电商技术负责人刘兵先生的独家授权,在csdn博客我原创发表《NRedis-Proxy 高性能Redis 中间件服务》的架构原理,以及项目开源介绍。一、 NRedis-Proxy 介绍 NRedis-Proxy 是一个Redis中间件服务,第一个Java 版本开源Redis中间件,无须修改业务应用程序任何代码与配置,与业务解耦;以Spring为基础开发自定义标签,让它可配置化,使其更加容易上手;以netty 作为通信传输工具,让它具有高性能,高并发,可分布式扩展部署等特点,单片性能损耗约5%左右。
1527 0
【直播预告】阿里技术专家梁盼:Redis多线程性能优化
众所周知redis是单进程单线程模型。单进程单线程只能跑满一个CPU核,小包场景下,QPS只有8~10万级别。由于网络IO和命令解析在redis命令处理中占用了较大部分的资源,因此将网络IO和命令解析,命令处理做功能拆分:IO和命令解析在IO线程中处理,命令处理在Worker线程中进行,从而达到提高性能的目的,经测试阿里云Redis多线程优化版性能上相比原生redis有 300%的性能提升,而功能上完全兼容原生redis。
2000 0
Redis短连接性能优化
对于Redis服务,通常我们推荐用户使用长连接来访问Redis,但是由于某些用户在连接池失效的时候还是会建立大量的短连接或者用户由于客户端限制还是只能使用短连接来访问Redis,而原生的Redis在频繁建立短连接的时候有一定性能损耗,本文从源码角度对Redis短连接的性能进行了优化。
12566 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20725 0
如何正确地使用Redis(附性能测试实验结果)
1. 概述简单来说,Redis就是一个数据结构存储器,可以用作数据库、缓存和消息中间件,它和传统数据库主要有两点不同:它是Key-Value型数据库,不是关系型数据库,所有数据以Key-Value的形式存在服务器的内存中,其中Value可以是多种数据结构:字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和有序集合(sorted sets)等类型;它所有运行时
2815 0
+关注
204
文章
1
问答
来源圈子
更多
阿里云数据库:帮用户承担一切数据库风险,给您何止是安心!支持关系型数据库:MySQL、SQL Server、PostgreSQL、PPAS(完美兼容Oracle)、自研PB级数据存储的分布式数据库Petadata、自研金融级云数据库OceanBase支持NoSQL数据库:MongoDB、Redis、Memcache更有褚霸、丁奇、德哥、彭立勋、玄惭、叶翔等顶尖数据库专家服务。
+ 订阅
相关文档: 云数据库 OceanBase 版 可信账本数据库 云原生关系型数据库 PolarDB PostgreSQL引擎
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载