数据库性能翻3倍:Redis on Flash分层存储技术是如何做到的?

news2024/10/7 8:25:05

Redis on flash简介:Redis on Flash 涉及到的是Redis的分层存储技术,即将数据存放在不同地方。Redis自2016年以来支持Redis on Flash。从2019年开始, Redis企业版(Redis Enterprise)宣布支持英特尔Optane DC持久性内存,它在DRAM和SSD之间提供了一个新的持久性内存层。

Redis企业版(Redis Enterprise)简介:Redis企业版软件(Redis Enterprise)是企业级的数据库软件,也是一款实时数据平台,为全球超过8500家知名企业提供实时数据服务。具有线性可扩展性、高可用性、持久性、备份和恢复、地理分布、分层内存访问、多租户、安全性等8大核心功能、拥有RediSearch、RedisJSON等7大【Redis企业版特有模块】,可以任何规模在云、本地和混合部署中运行现代应用程序,提供无服务器、多模型的数据库解决方案。Redis企业版的核心优势是采用Redis on flash分层存储技术即【内存+闪存+磁盘】的存储方式,其Active-Active地理分布式架构允许跨地理位置同时进行数据读写操作、拥有亚毫秒延迟和极高吞吐量。

虹科Redis企业版的Redis on Flash (RoF)一直是非常受欢迎的企业功能之一,RoF将高达80%的数据集存储在SSD而不是昂贵的DRAM中,同时还能够保持亚毫秒级延迟和Redis的高吞吐量。在典型部署中,Redis on Flash可提供高达70%的TCO折扣。

目前,两项实践项目证明,Redis on Flash可以提供高达3.7倍的性能,在Redis上运行大型数据集可以保持超高性价比的TCO(总拥有成本):

  • AWS宣布全面推出新一代实例Amazon EC2 I4i,该实例由第三代Intel Xeon可扩展处理器(代号 Ice Lake)和基于AWS Nitro SSD NVMe的存储提供支持。Amazon EC2 I4i承诺将会为Redis客户提供显著提升的功能。
  • Redis宣布将Redis on Flash数据引擎开放给任何与RocksDB兼容的数据库,并将Speedb宣布的新技术作为首选。

因此,随着公司对低延迟微服务架构的需求增加,AWS的Amazon EC2 I4i实例+ Redis企业版的Redis on Flash数据引擎将会给用户带来超凡的性能体验。

Amazon EC2 I4i和Speedb为Redis on Flash带来了什么?

首先,我们先深入了解一下Redis on Flash的新功能。AWS 正在提供新的 Amazon EC2 I4i(“i”代表 Intel)实例,I4i实例使用最新技术、Intel Ice Lake处理器和AWS Nitro SSD,与上一代I3实例相比,I4i实例提高了读写能力(IOPS)并减少了延迟。

除了硬件之外,Redis企业版一直在寻找能够让RoF提供更高性能的方法。Redis Enterprise发现,如果将数据引擎开放给客户,会帮助企业看到创新机会并提高企业创新速度。目前,Redis企业版的RoF对任何与RocksDB兼容的数据引擎开放。Speedb提供RocksDB存储引擎的嵌入式解决方案,与Redis团队建立战略合作,重新设计了RocksDB的内部数据结构,为大容量实时数据集提供可节省CPU、高性能大规模且降低成本的存储方式。

通过亚毫秒级测试发现,无论我们使用的是I4i还是I3的AWS EC2实例,Speedb都可以将RoF的性能提高50%。带有Speedb的 RoF目前提供预览版本,具体可以联系虹科云科技团队获得更多信息及试用服务。(扫码下方二维码即可)

Redis on Flash的基准测试

1.Redis on Flash的应用场景

基于AWS的I4i实例和Speedb数据引擎,Redis企业版(Redis Enterprise)非常荣幸能够第一个全面测试 Amazon EC2 I4i 实例的 AWS 合作伙伴,并使用Redis on Flash的新Speedb数据引擎对其进行测试

这里想要强调一下,Redis on Flash能够智能的对大型数据集进行分层,其目的是利用比DRAM每GiB价格更低的NVMe SSD,从而使得Redis企业版(Redis Enterprise)能够以DRAM实例30%的TCO(总拥有成本)就可以获得Redis级性能,如果加上AWS的I4i实例将会有更高的性能。

在获得基准测试结果之前,我们可以明确一下客户在何种场景下可以选择RoF:

  • 数据迁移DRAM 成本高昂。如果将小于总数据集进行迁移需要额外的、成本高昂的 DRAM ,那么用户可以考虑Redis企业版的Redis on Flash。
  • 需要批量进行数据处理。如果企业需要为关键业务应用程序处理大量数据,且需要在处理数据的同时保持应用程序的低延迟和高吞吐量,那么用户可以考虑Redis企业版的Redis on Flash。

2.进行基准测试

1)Redis on Flash性能比较

我们在四个 AWS 实例上比较了 Redis on Flash 的性能:
在这里插入图片描述

2)数据引擎的性能比较

我们比较了两个数据引擎的性能:

  • RocksDB
  • Speedb

测试参数:

我们使用了 1KiB 的值大小,涵盖了大多数标准 Redis 用例
我们测试了 50%85% 的 RAM 命中率(即直接从 RAM 处理的许多请求)
我们测试了 20:80 RAM:Flash 比率
我们对各种读写比率进行了基准测试:1: 14:11:4
所有测试均使用两台服务器完成

以下是我们根据实例类型运行的数据库大小:

  • I4i.4xlarge: 500GB + replication. 5 Primary shards + 5 Replica shards
  • i3.8xlarge: 1TB + replication. 10 Primary shards + 10 Replica shards
  • I4i.8xlarge: 1TB + replication. 10 Primary shards + 10 Replica shards
  • I4i.16xlarge: 2TB + replication. 20 Primary shards + 20 Replica shards

在每种配置中,我们测试了在保持亚毫秒客户端延迟(不包括网络)的同时可以实现多少操作/秒。

3)测试结果

下图显示了 i3 与 I4i 以及 RocksDB 与 Speedb:
在这里插入图片描述

我们可以看到以下改进:
在这里插入图片描述

下图显示了 Speedb 上 I4i 的缩放比例和不同的读写比率:
在这里插入图片描述

我们可以看到以下结果和改进:

智能缩放,我们可以看到I4i上的RoF与Speedb几乎是线性缩放的。
4xlarge → 8xlarge 的因子为 ~1.55x-1.8x
8xlarge → 16xlarge 的缩放因子为 ~1.85x-1.95x

第二个值得注意的结果是I4i上的 RoF与Speedb对应用程序访问模式(读:写比率)非常不可知,这意味着性能保持稳定且可预测。当使用多个不同的应用程序或访问模式随时间变化时,这对用户而言可能有极大的用处。

下图显示了Redis on Flash整体3.7 倍的性能提升(吞吐量操作/秒):
在这里插入图片描述
推荐阅读:
《数据库性能如何翻3倍?》
《Redis企业版数据库简介》

虹科云科技,主要分享云计算、数据库、商业智能、数据可视化、高性能计算等相关知识、产品信息、应用案例及行业信息,为学习者传输前沿知识、为技术工程师解答专业问题、为企业找到最适合的云解决方案!

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

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

相关文章

基于NB-IoT的智能垃圾桶系统设计与实现

本设计是基于物联网的智能垃圾桶,主要实现以下功能: 1,压力传感器模块采集垃圾重量数据; 2,GPS定位模块采集垃圾桶所在的经纬度数据; 3,人体红外模块检测人体并返回是否有人通过的数据&#xf…

会议管理系统SSM记录(二)

目录: (1)整合Freemarker (2)用户登录 (3)提取头部 (4)提取菜单抽取 (1)整合Freemarker 在pom.xml中加入Freemark依赖: 创建free…

HTML+CSS大作业:基于HMTL校园学校网页设计题材【我的学校网站】

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

专精特新企业三个层级

专精特新企业也是分层级的。工信部2022年6月印发《优质中小企业梯度培育管理暂行办法》里面明确提出中小企业培育的3个梯度,分别是创新型中小企业、专精特新中小企业和专精特新小巨人企业,刚好构成中小企业发展层级金字塔。这就意味着企业想要发展崛起&a…

19 04-读取DTC快照信息

诊断协议那些事儿 诊断协议那些事儿专栏系列文章,19服务作为UDS中子功能最多的服务,一共有28种子功能,本文将介绍常用的19 04服务:读取快照信息。 关联文章: 19服务List 19 01-通过状态掩码读取DTC数目 $19服务:DTC…

1.2 C++编译器对指针的解释方式(深度理解c++指针)

1.2 指针 1.2.1 指针解释方式 从内存的角度,一个指向类对象的指针与一个指向整数类型的指针或一个指向数组的指针,三者之间是没有任何区别的,它们内部都只存储了一个机器地址值(word)。不同类型指针的区别仅在于其寻址出来的object类型的不…

div+css布局实现个人网页设计(HTML期末作业)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

Spring源码深度解析:七、bean的加载① - doGetBean概述

我们先通过getBean()流程图,来了解Spring的getBean()方法的工作流程,接着根据这个工作流程一步一步的阅读源码 一、前言 文章目录:Spring源码分析:文章目录 getBean()方法是spring ioc的核心,阅读getBean()方法的源…

【Spring Boot+Vue.js+JPA+Mysql】实现前后端分离的名片系统(附源码 超详细必看 可作为大作业使用)

需要项目源码请点赞关注收藏后评论区留言并且私信~~~ 一、项目简介 前后端分离的核心思想时前端页面通过掉用后端的RESTfulApI进行数据交互。本次项目使用Spring BootSpring Data JPA实现后端系统,使用Vue.js实现前端系统,数据库采用mysql,集…

磨金石教育摄影技能干货分享||如何将平凡的窗户拍出美感

窗户有着天然的构图优势,一直是摄影爱好者们喜欢拍的场景。都说眼睛是心灵的窗户,窗户其实就是房间窥探世界的眼睛。 特别是在中国文化中,对窗户的艺术雕刻,总是那么侧重。一间房子好不好看,窗户的设计往往是较为重要…

Java里的异常机制

一、什么是异常 软件程序在运行过程中,遇到用户输入不符合要求、文件路径不存在、文件格式错误、非法参数等的异常问题,叫做异常(Exception)。 二、简单分类 1.检查性异常 最具代表的检查性异常就是用户错误或问题引起的异常&…

计算机网络:网络层

网络层 网络层主要是解决寻址连接问题,例如两个主机在网络上通过IP进行连接通信 1.网络层概述 网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输 需要解决的主要问题: 因特网 使用TCP/IP协议栈通过学习TCP/IP协议栈的网…

Nginx:handler 模块的实现

文章目录1、模块的分类2、模块的基本结构2.1、模块配置结构2.2、模块配置命令2.3、模块上下文结构2.4、模块的定义3、http 请求处理3.1、请求处理阶段3.2、获取用户请求3.3、发送响应4、例:流量限制模块4.1、操作共享内存4.1.1、红黑树4.1.2、双向链表4.2、编写模块…

APS排程软件在压铸行业的应用

压铸是一种金属铸造工艺,其特点是利用模具内腔对融化的金属施加高压。模具通常是用强度更高的合金加工而成的,这个过程有些类似注塑成型。大多数压铸铸件都是不含铁的,例如锌、铜、铝、镁、铅、锡以及铅锡合金以及它们的合金。根据压铸类型的…

js:判断文本溢出隐藏生效text-overflow: ellipsis

效果展示 参数汇总 看上图,不难发现,文字有超出的条件是 target.scrollWidth > target.offsetWidth可以通过js判断是否生效,参考element-ui的代码实现 https://github.com/ElemeFE/element/blob/dev/packages/table/src/table-body.js#…

RocketMQ的主要组件及其功能

一、RocketMQ部署的组件 RocketMQ是啥就不多说了,一个基于主题的订阅发布机制的消息中间。下面就是我们部署时的架构,NameServer和Broker需要部署在服务器上,对于消费者和生产者则是我们在自己的程序里启动,去push/pull消息。 消…

rust变量与常量

变量绑定 在rust里有个核心原则,那就是所有权。在其它语言中,我们可以把一个值赋值给变量。但是在rust里,是把值绑定到变量上。任何内存对象都是有主人的,而且一般情况下完全属于它的主人,绑定就是把这块内存绑定给一…

路由器的工作原理,详细介绍

1、路由器的作用 路由器: router 作用:实现跨网段通信,不同的网络之间通信 交换机: switch 作用:组建局域网,就是将电脑通过网络连起来 交换机的原理参考文档:计算机网络之交换机的工作原理…

前端React项目的Next.js项目通过CSS引入自定义字体文件

最近在Web3的项目,需要引入自定义字体,做下记录: 1、 如果是下载的字体文件,直接能使用的就不需要转换,如果是TTF格式则需要转换成eot、svg、woff、woff2,这里提供一个网站Font Squirrel | Create Your Ow…

ROS之话题通信

文章目录理论模型分析流程1. 发布方2. 订阅方3.配置 CMakeLists.txt4.执行5.注意参考理论模型 话题通信实现模型是比较复杂的,该模型如下图所示,该模型中涉及到三个角色: ROS Master (管理者)Talker (发布者)Listener (订阅者) ROS Master 负责保管 Talker 和 Li…