当前位置: 首页 > news >正文

虹科干货 | Redis Enterprise 自动分层技术:大数据集高性能解决方案

文章来源:虹科云科技
阅读原文:https://mp.weixin.qq.com/s/5ik-WLHwEmPn42f1FissQw

越来越多的应用程序依赖于庞大的数据集合,而这些应用程序必须快速响应。借助自动分层,Redis Enterprise 7.2 帮助开发人员轻松创建超快的应用程序。何乐而不为?

Redis将数据存储在内存中,因此应用程序能以最快的速度检索和处理数据。然而,随着应用程序需要处理的数据越多,存储数据集所需的内存越大,所耗费的成本则更高,Redis Enterprise自动分层技术能很好地化解这个两难的局面。

一、问题:内存有限且昂贵

当应用程序访问的数据量很大,例如达到TB级时,开发人员就面临着内存有限的问题,他们一般使用基于磁盘的解决方案来在幕后支持 Redis。这样一来,开发人员就不得不在应用程序中构建整个数据管理系统,这意味着他们要把时间花在不相干的任务上。

利用 Redis Enterprise 的自动分层功能,开发人员可以使用固态硬盘(SSD)作为可用内存的一部分,将大容量数据库扩展到SSD中。Redis Enterprise 可以随时识别哪些数据应留在内存中,哪些数据应留在固态硬盘上,从而将吞吐量提高一倍,并将延迟减半。

因此,开发人员无需编写额外的代码或学习其他新技术。通过将动态 RAM 与高速外部存储相结合,Redis Enterprise 可以轻松高效地使用系统资源,同时还能快速访问热数据。

二、自动分层的工作原理

自动分层可自动管理数据。它会将热数据转移到 DRAM,并智能地将未使用的数据转移到 SSD。这为依赖大型数据集的应用带来了新的可能性。
在这里插入图片描述
通过将访问频率较低的冷数据转移到固态硬盘,开发人员可以优化内存使用,降低与大容量内存需求相关的成本。
实际上,这可以使数据量大的应用程序运行得更快,而无需开发人员额外付出。与仅使用 DRAM 的部署相比,它还能节省高达 70% 的基础硬件设施成本。而且,由于自动分层可以高效地自动管理数据访问模式,因此您无需花费时间(计算或人工筛选)来识别热数据和冷数据。
在这里插入图片描述
为了增强这一功能,Redis 与创新的键值存储引擎 Speedb 建立了战略合作伙伴关系。我们将其技术整合为默认的自动分层引擎。
集成 Speedb 后,Redis Enterprise 的性能显著提升,在访问相同资源的情况下,吞吐量翻倍,延迟减半。这大大拓宽了可利用自动分层优势的用例范围。在这一改进之后,Redis Enterprise 使用自动分层的数据库规模由每个内核 5k ops/秒增至10k ops/秒。
在这里插入图片描述

三、数据案例

我们来看一个案例。

下图展示了自动分层在实际工作负载场景中的性能演变示例。蓝色条代表使用以前的存储引擎(RocksDB)的 Redis Enterprise 6.4,红色条代表使用 Speedb 的 Redis Enterprise 7.2。在基础设施方面,我们使用 I4i.8xlarge AWS 实例在 10 个分片上托管 1TB 数据库,为实现高可用性,采用总共 20 个分片,为 1,024 个客户端提供服务。

为了模拟最标准的 Redis 用例,我们在 20% DRAM 和 80% SSD 的配置上定义了两种不同的有效载荷(1KiB 和 10KiB),并提供了三种可能的使用模式:平衡读/写(1:1)、重读(1:4)和重写(4:1)。在这两种情况下,我们测量了以每秒操作数为单位的吞吐量和相应的延迟。以下图表显示了结果。
在这里插入图片描述
RAM/SSD数据占比2:8,单次操作1KB值

与 RS 6.4 (RocksDB) 相比,RS 7.2 (Speedb) 改进了:
· 85% 命中率时:每秒操作次数增加 1.4 倍至 1.6 倍,同时延迟降低高达 2.4 倍
· 50% 命中率时:每秒操作次数增加 1.9 倍至 2.3 倍,同时延迟降低高达 3.8 倍
RAM/SSD数据占比2:8,单次操作10KB值

与 RS 6.4 (RocksDB) 相比,RS 7.2 (Speedb) 改进了:
· 85% 命中率时:每秒操作次数增加 2.3 倍至 3.0 倍,同时延迟降低高达 3.0 倍
· 50% 命中率时:每秒操作次数增加 2.1 倍至 3.5 倍,同时延迟降低高达 3.5 倍

在所有情况下,带有 Speedb 的 Redis Enterprise 7.2 都具有更好的吞吐量,这意味着维持这种性能水平所需的应用程序速度更快,基础设施更少。

四、应用场景

自动分层尤其适用于将数据分为热数据和冷数据的情况。

1.移动银行
让我们来看看移动银行应用的例子。
如今,每个人的移动设备上都有银行应用程序。用户登录应用程序,获取余额,查看最后一笔交易,并获取其他相对较小和集中的信息。每个人都希望这一过程流畅、简单、即时。这些数据就是我们的热数据,存放在 Redis Enterprise 数据库的 DRAM 中。

用户希望获得更多信息的情况并不常见,例如旧交易记录–也许是两年前的税务数据。用户需要访问这些数据,但数据访问速度并不那么重要。这种数据集是我们的冷数据,可以保存在高速外部存储如固态硬盘中。

2.游戏行业
速度在游戏行业也很重要。例如,游戏应用对延迟有严格要求。另外,从本质上讲,游戏是一种潮流。随着时间的推移,游戏公司会积累越来越多的用户数据,并将其存储在用户资料数据库中,但并非所有用户都是活跃用户。通过自动分层,活跃用户的资料数据可以存储在 DRAM 中,而其他用户的数据则存储在 SSD 中。

相关文章:

虹科干货 | Redis Enterprise 自动分层技术:大数据集高性能解决方案

文章来源:虹科云科技 阅读原文:https://mp.weixin.qq.com/s/5ik-WLHwEmPn42f1FissQw 越来越多的应用程序依赖于庞大的数据集合,而这些应用程序必须快速响应。借助自动分层,Redis Enterprise 7.2 帮助开发人员轻松创建超快的应用程…...

信息系统项目管理师第四版学习笔记——组织通用治理

组织战略 组织战略是组织高质量发展的总体谋略,是组织相关干系方就其发展达成一致认识的重要基础。组织战略是指组织针对其发展进行的全局性、长远性、纲领性目标的策划和选择。 战略目标是组织在一定的战略期内总体发展的总水平和总任务。它决定了组织在该战略期…...

安装zip扩展(PHP)

记录一次 安装zip扩展的最优方案 (备注 网上以及Ai提供的很乱不能很快解决) 首先搜索zip包 yum search zip选择自己合适的php版本 比如我的php是7.4.33的 我就用php74-php-pecl-zip 如果没有的话 先添加软件源 sudo yum install epel-release sudo yu…...

深度学习YOLOv4环境配置

软件安装 1、什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 CUDA下载地址为CUDA Toolkit Archive | NVIDIA Developer 版…...

从0到1:云计算工程师入门指南

华为职业认证覆盖ICT全领域,致力于提供领先的人才培养体系和认证标准培养数字化时代的新型ICT人才,构建良性的ICT人才生态。 华为推荐职业认证进阶路线 根据ICT从业者的学习和进阶需求华为职业认证分为工程师级别、高级工程师级别和专家级别三个认证等…...

【微信小程序】6天精准入门(第3天:小程序flex布局、轮播图组件及mock运用以及综合案例)附源码

一、flex布局 布局的传统解决方案,基于[盒状模型],依赖display属性 position属性 float属性 1、什么是flex布局? Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以…...

Hadoop3教程(二十五):Yarn的多队列调度器使用案例

文章目录 (136)生产环境多队列创建&好处(137)容量调度器多队列提交案例如何创建多个队列如何向指定队列提交任务 (138)容量调度器任务优先级(139)公平调度器案例参考文献 &#…...

【SA8295P 源码分析 (四)】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread_handler 数据发送线程 源码分析

【SA8295P 源码分析】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread_handler 数据发送线程 源码分析 系列文章汇总见:《【SA8295P 源码分析 (四)】网络模块 文章链接汇总 - 持续更新中》 本文链接:《【SA8295P 源码分析 (四)】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread…...

思维模型 上瘾模型(hook model)

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。你到底是怎么上瘾(游戏/抖音)的?我们该如何“积极的上瘾”?让我们来一切揭晓这背后的秘密。 1 上瘾模型的应用 1.1上瘾模型的积极应用 1 学…...

中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例

中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例 中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例。 软件功能: 1、系统设置:参数设定,账号及权限设置,系统初始化&a…...

【27】c++设计模式——>迭代器模式(1)

迭代器实现通常包含两个主要组件:迭代器和聚合对象,聚合对象一般是vector,list,set,map等,迭代器负责在聚合对象上进行遍历,并提供了一种统一的访问元素的方法。聚合对象用来存储,并…...

table的展开折叠按钮操作

按钮 <el-buttontype"info"plainicon"el-icon-sort"size"mini"click"toggleExpandAll">展开/折叠</el-button>table: default-expand-all“isExpandAll” <el-tablev-if"refreshTable"v-loading"loadi…...

计算机毕业设计 基于SpringBoot智慧养老中心管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

Android-Framework 不允许应用商场下载的应用安装,adb 、pm 可以正常安装

一、环境 高通865 Android10 二、情景 从framework层禁止应用商场下载的应用安装&#xff0c;adb 、pm 可以正常安装 三、代码实现 frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/InstallStart.java -35,6 35,7 import android.os.Build;…...

面试 4

1、作用域 w3scholl中定义&#xff1a;作用域指的是您有权访问的变量集合。 作用域是指在程序中定义变量的区域&#xff0c;该位置决定了变量的生命周期。通俗理解&#xff0c;作用域就是变量与函数的可访问范围&#xff0c;即作用域控制着变量和函数的可见性和生命周期。 在…...

【AI视野·今日Robot 机器人论文速览 第五十五期】Mon, 16 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 16 Oct 2023 Totally 27 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;***AcTExplore, 对于未知物体的主动触觉感知。基于强化学习自动探索物体的表面形貌&#xff0c;增量式重建。(from 马里兰…...

交换机基础(一)

一、物理接口 配置物理接口需要分别指定接口类型、框号、插槽号、交换机端口号。常见接口类型如表所示。 插槽号&#xff1a;插槽号是交换机模块号&#xff0c;非模块化交换机则不用标识插槽号或者使用0编号。 端口号&#xff1a;交换机端口总是从1开始。 接口类型 接口配置…...

进阶JAVA篇- Collcetions 工具类与集合的并发修改异常问题

目录 1.0 集合的并发修改问题 1.1 如何解决集合的并发修改问题 2.0 Collcetions 工具类的说明 1.0 集合的并发修改问题 我们可以简单的认为&#xff0c;就是使用迭代器遍历集合时&#xff0c;又同时在删除集合中的数据&#xff0c;程序就会出现并发修改异常的错误。 代码如下&…...

npm WARN npm npm does not support Node.js v12.18.3

npm 不支持 Node.js v12.18.3 &#xff0c; npm和node的版本不匹配。 npm WARN npm npm does not support Node.js v12.18.3 npm WARN npm You should probably upgrade to a newer version of node as we npm WARN npm cant make any promises that npm will work with this v…...

转行做程序员,多晚都不晚

大家好啊&#xff0c;我是董董灿。 最近有不少小伙伴加我微信咨询一些问题&#xff0c;有同学想了解AI行业的现状&#xff0c;想着转行的&#xff0c;也有在校生想了解毕业后工作方向的&#xff0c;当然也有想学习编程知识的。 诚惶诚恐&#xff0c;没想到之前写的文章&#…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...