企业打开Redis的正确方式,来自阿里云云数据库团队的解读

摘要: Redis是开源的基于内存且可以持久化的分布式 Key – Value数据库。自2009年发布最初版本以来,Redis的热度只增不减,除了经常位居DB-Engines的最受欢迎Key-Value数据库榜首之外,看阿里云技术总监为您深度解读云数据库Redis。

点此查看原文:http://click.aliyun.com/m/41902/


为何Redis成为数据库能成为后起之秀?


   数据库技术积累近半个世纪,然而随着新时代场景增多、业务发展,传统数据库面临着很多压力。数据开始初现规模,企业需要多套HA集群数据库,SQL和NoSQL Key Value混合使用,并且开始使用监控系统。而更加复杂的情况下,每个业务都需要各自特定的数据库架构和优化方案,需要加入OLAP 、离线分析任务,并且考虑高速扩展、高性能、高可靠等问题。

        Redis是开源的基于内存且可以持久化的分布式 Key – Value数据库。自2009年发布最初版本以来,Redis的热度只增不减,除了经常位居DB-Engines的最受欢迎Key-Value数据库榜首之外,也在多家调查报告中成为非常受喜爱的NoSQL数据库。

        Redis作为NoSQL的代表之一,为什么会在历史悠久的数据库领域中迸发出此般活力?

        阿里云云数据库技术总监蔡松露认为:相比与强一致性的SQL关系型数据库,NoSQL非关系型数据库具备高性能、高灵活性。在当今的互联网时代,如新金融、新零售、视频直播、人工智能、IoT等多样化的业务场景有了更严苛更不同的技术诉求。其次,擅长OLTP查询的SQL并不完美地满足猛增的OLAP分析需求。最后,数据库行业一直信奉的CAP理论已经被Paxos、Raft等算法打破,即可以同时实现强一致、高可用和高容错,这也被视为NoSQL运动兴起的重大原因之一。

        “一切坚固的东西,都烟消云散了”。 Redis能让数据库运行在内存中,比闪存盘快1000倍。

 开源Redis有哪些不足?

        其实,开源项目和企业产品,有着完全不同的定位。开源Redis项目最大的原则是简单可靠,但是云产品则需要满足很多企业诉求如多地容灾、安全加密、升级与优化、集群兼容性等等。

        阿里云云数据库团队一直积极参与Redis开源社区的共建:在Redis 创始人 Salvatore之后,对社区代码贡献第二的就是阿里云云数据库团队;去年十月,阿里云云数据库还将自研的特性如短连接性能提升30%、支持热升级、兼容Memcache等融合到ApsaraCache项目中并贡献给开源社区,对此Salvatore表示“ApsaraCache 项目开源是一件非常好的事情,将能够吸引全世界更多 Redis 核心专家参与,进一步提升产品的稳定性和可用性。”

        在每个企业级的需求背后,团队都做了巨大的研发工作。举例说明,集群高兼容性和无缝扩容以满足实际生产需求;在集群热升级时做到使用无感知且业务不受影响;提供安全加密功能满足如金融对保密级别要求高的客户等等。

 工业级使用,没有什么是小事儿

        目前,90%的中国互联网公司都依靠Redis支撑用户的高并发访问,而80%的中国视频直播网站都使用的阿里云云数据库 Redis 版。

        与开源Redis项目相比,兼容Redis协议标准的阿里云云数据库 Redis 版有哪些优势?

TB12DQWXr9YBuNjy0FgXXcxcXXa-854-323.png

                                           Figure 1阿里云基于开源Redis的企业级需求技术支持 

       作为为企业服务的云产品,仅仅提供酷炫的功能并不足够,更需要的是可靠、性能、安全和易用方面的保障和承诺。对于阿里云云数据库团队而言,很多改进都是在各种客户场景需求下不断打磨而成,比如:双机热备、持久化、同城容灾;支持集群版、高性能硬件、基于Binglog模式复制免除pfork;VPC网络、强密码认证、DDoS攻击、SSL加密;性能监控、阈值报警、高频操作、数据管理等。

        容灾是必不可少的部分,Redis原生的AOF可以帮助同一机房网络相应可达情况下的容灾,但是对于链路过长跨城甚至存在跨时区机房时,而需要远程异地同步。有些企业对可用性要求极高,每个单元都须承担流量,允许N-1个机房断电;为此,团队设计了服务单元化+数据中心的拓扑模式,并相应地进行内核改造从而具备独特的容灾能力。

TB1y_ZWXr9YBuNjy0FgXXcxcXXa-1330-602.png

                                                       Figure 2:Redis异地多活架构方案示意图 

        每个行业都会有各自场景需求。以游戏行业为例,如斗地主等房间模式需要做到随时开服,这就需要基于时间点用户备份做到瞬间克隆实例;而对于参加人数会猛增的游戏,需要在疯狂灌人时逐步增大配置以做到资源合理高效利用,比如从标准版一键升级到极致版需要秒级迁移用户数并且做到服务不收影响;在游戏低峰收尾业务时多服合并,即将多个服务数据库汇总到一个再做实时降级。同时,还要云上云下数据打通,数据归档快速回滚,做到时间点或局部恢复。

        而对于视频直播行业,瞬间大量用户涌入的场景非常需要快速存储、快速响应,基于朋友关系的送礼物、讨论评论等大部分数据操作都适合非关系型数据库,而仅有充值等少量场景需要关系性数据库,因此重度依赖Redis数据库,相应地则有“稳定性高于一切、低内存高QPS、连接数较大”的技术要求。相应地,阿里云出台的视频直播方案具备连接数可普调至1-2w、带宽可单独调配及至万兆, 集群支持热点key,读写分离等

        此外,民生类的行业又会分为极高QPS,热升、无缝扩容的新闻类,容灾、多活的交通类,容灾、数据安全的金融类,根据各种场景给出响应的优化方案。

 关于阿里云Redis 4.0云数据库增强版的一些细节

        阿里云云数据库Redis版发布的增强版具有多线程架构、内存压缩算法优化、key后台删除功能、Redis module、Redis热key统计等特点,尤其值得一提的是该款产品通过创新的Redis module让数据库第一次有了“集装箱货轮”的能力。

TB1OY.VXv9TBuNjy0FcXXbeiFXa-1920-1080.pn

                                              Figure 3:Redis module让数据库拥有“集装箱”能力 

        一般而言,传统的单核CPU需要承担30%计算和60%网络的工作负载,而当采用多核处理之后,可以将计算、网络任务分别交给若干个CPU并将性能提高三倍,从根本上解决问题从而高并发任务量。同时,还通过创新的内存压缩算法,将数据量压缩50%。

        热key统计是为了解决热点事件时大流量请求集中落在某些分片中,到达物理网卡上线,缓存分片服务被打垮,缓存击穿请求‘穿透’引起‘雪崩’的问题。常见的方法是结合使用服务端缓存、Memcache等,但是需要提前获知热点、缓存容量依然有限、增长不一致时间且热点key遗漏等。目前,受益于读写分离架构,搭配负载均衡、读写分离自动路由和各节点高可用等,增加服务端能力高效快速发现热点数据,从而应对热key困境。

 Redis未完,NewSQL待续

        阿里云云数据库 Redis 版兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构、可无缝扩展的集群架构以及读写分离架构,满足高读写性能场景及容量需弹性变配的业务需求。

        关于非关系型数据库,阿里云还有可根据不同场景切换引擎的MongoDB 3.4、首个全托管的DBaaS服务HBase  1.1,与开源社区版本相比,前者高连接数下并发提升10倍、短链接并发提升5倍,后者支持本地盘成本下降90%、整体性能提升3倍。

TB1xIcVXv9TBuNjy0FcXXbeiFXa-1227-439.png

                                         Figure 4:阿里云拥有全球最完善的NewSQL云数据库家族 

        没有NewSQL,企业将无法从容应对大规模增长的数据,多维模型、聚合、大数据计算、物联网应用、机器学习实践等等新场景都会非常艰难。随着未来不断发展演进,各类数据库或许会逐渐融合为一,那时我们只需要在线插件式的方法,根据不同业务需求选用即可。

扫码获取更多资讯:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019 年度程序员吸金榜:你排第几?

作为全球知名招聘求职网站Indeed,最近发布了2019年度最佳工作榜单,公布了2019年的行业领域及工作岗位薪酬,在全行业的榜单中,跟程序员相关的岗位有9个!对此,大家纷纷留言表示程序员或成最大赢家&#xff01…

YAFFS2移植到AliOS Things指南

摘要: YAFFS2介绍 YAFFS(Yet Another Flash File System)是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备。YAFFS 是基于日志的文件系统,提供磨损平衡和掉电恢复的健壮性。 点此查看原文&…

阿里云十年,从去“IOE”到引领云原生浪潮

戳蓝字“CSDN云计算”关注我们哦!作者 | 孙浩峰出品 | CSDN云计算(ID:CSDNcloud)2008年,王坚从微软亚洲技术研究院空降阿里,担任首席架构师。这个在阿里内部尊称为“博士”的首席架构师所学却是一个心理学博…

linux下mtr命令,如何使用Linux mtr命令

对于经常和Linux打交道的技术人员来说,mtr命令是一个非常实用的Linux命令。它可以进行实时网络诊断。本篇文章分享了linux mtr命令的详细使用示例。以下描述来自mtr命令的软件包信息。Mtr是一种网络诊断工具,将ping和traceroute组合到一个程序中。Mtr提供…

IntelliJ IDEA 单行注释调整

部分人并不习惯这种风格,所以一般会设置为单行注释的两个斜杠跟随在代码的头部,在File -> Setting -> Editor -> Code Style -> Java -> Code Generation 下如图设置即可

高速通道-冗余物理专线接入-健康检查配置

摘要: 组建混合云,用户的IDC需要通过物理专线与阿里云VPC互通,多线冗余是基本配置需求。阿里云提供的冗余冗余切换方案是在VPC中,用户掌握切换原理,即可自主在控制台完成冗余负载配置。 一 VPC健康检查IP机制1 健康检查…

OpenStack精华问答 | OpenStack的目标是什么?

关于OpenStack的争议,从未停止,每每关于它的消息,都会一石激起千层浪。今天就让我们看看关于OpenStack的问答吧。1Q : 什么是OpenStack?A : OpenStack,是目前最为流行的开源云操作系统框架。深入理解OpenStack需要围绕…

linux创建定时任务命令,linux设置定时任务的方法步骤

一,首先登录二,找到文件夹三,查看定时任务crontab -l四,vi root 编辑定时任务 编辑完成后,点ESC,然后:wq时间格式分钟 小时 日期 月份 周 命令数字范围 0-59 0-23 1-31 1-12 0-7 echo "hello" &g…

idea terminal终端修改为git bash设置

idea terminal终端修改为git bash设置: 修改前: 修改后:

iOS KVO crash 自修复技术实现与原理解析

摘要: 【前言】KVO API设计非常不合理,于是有很多的KVO三方库,比如 KVOController 用更优的API来规避这些crash,但是侵入性比较大,必须编码规范来约束所有人都要使用该方式。有没有什么更优雅,无感知的接入…

数据中心网络架构的问题与演进 — 传统路由交换技术与三层网络架构

戳蓝字“CSDN云计算”关注我们哦!文章目录目录传统路由交换技术路由和交换交换技术传统的 2 层交换技术具有路由功能的 3 层交换技术具有网络服务功能的 7 层交换技术路由技术三层网络架构核心层(Core Layer)汇聚层(Aggregation L…

10分钟上线 - 利用函数计算构建微信小程序的Server端

摘要: 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。微信小程序是一种不需要下载安装即可使用的应用,它可以在微信内被便捷地获取和传播。 当微信小程序遇见serv…

'cross-env' 不是内部或外部命令,也不是可运行的程序

解决方案: 运行: cnpm i cross-env --save-dev

监控linux内存,linux 监控系统资源-内存

监控内存使用量:思路:使用free -m 提取相关数据,算出使用内存量输入到文件,并且每一次计算都与当前文件中的数据对比,大于文件中的数据则替换。保留当天最大内存使用量,每天发送邮件(可以单独写个发邮件的脚本)。脚本可…

AI+DevOps正当时

戳蓝字“CSDN云计算”关注我们哦!随着业务复杂化和人员的增加,开发人员和运维人员逐渐演化成两个独立的部门,他们工作地点分离,工具链不同,业务目标也有差异,这使得他们之间出现一条鸿沟。而发布软件就是将…

SpringBoot集成Flowable_Jsite待办任务菜单报500

JSite 快速开发框架,内置Flowable工作流引擎 五大基础模块 前后端基础代码自动生成 权限精确控制。 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因此采用历史版本。 文章目录一、克隆/打开项目1.1. 搜索…

阿里云SDK再升级,宣布支持C++语言

摘要: 日前,阿里云官方SDK发布支持新语言——C 语言SDK,意味着90%以上产品可以随时生成并发布C SDK,给C 语言的开发者使用。 此次阿里云发布支持C SDK的新功能,可以让C 语言开发者更加便捷地使用SDK调用产品API来操作产…

网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储

Linux基础教程学习笔记28——使用Samba访问网络存储SMB用于Windows和类Linux系统直接的文件共享安装samba client包:[rootlinuxidc~]# yum install samba-client\* -y使用smbclinet命令查看和访问windows共享的文件夹资源:12345678910111213 [rootlinuxi…

IDC Q1中国云服务报告:公有云IaaS市场增速持续高于全球

2019年8月2日,市场研究机构IDC发布了《2019Q1中国公有云服务市场跟踪报告》。报告显示,中国公有云市场发展强劲,2019年Q1公有云IaaS市场同比增长74%,头部效应明显,市场集中度较去年持续提升。头部厂商中,阿…

SpringBoot集成Flowable_Jsite已办任务菜单报500

JSite 快速开发框架,内置Flowable工作流引擎 五大基础模块 前后端基础代码自动生成 权限精确控制。 说明:此版本我已经调通,最新版本正在更新,页面未处理好,因此采用历史版本。 文章目录一、克隆/打开项目1.1. 搜索…