tag 标签: 缓存

相关帖子
相关博文
  • 2023-1-5 09:26
    0 个评论
    Redis企业云如何通过缓存轻松扩展到亿级请求?
    你是否在春运抢票过程中遇到12306 APP瘫痪? 你是否在双十一抢好物的时候显示系统繁忙? 你是否在微博刷某个爆了的娱乐新闻时显示页面走丢了? 前几天热搜上好像又说小红书又崩溃了? 当用户请求量过高,数据库无法支撑时,应用程序或软件就会从客户的界面“出逃”。出逃的结果是:用户丢失,对产品的技术能力产生不信任感。 如何扩展请求扼杀应用程序或软件界面的“出逃计划”?最好的方法是缓存! 印度科技公司Freshworks的数据库负载问题 对于任何一家企业而言,优质的服务才是客户成功的业务关键。 作为一家超过100亿美元估值的印度科技公司,Freshworks让“客户成功”变得简单! 自2010年成立以来,Freshworks已成为客户服务平台的领导者,其基于云的商业软件套件被全球超过150000家组织使用,包括松下、惠普、纽约大学和美国运通等。 在过去的10多年时间里,Freshworks的年增长率超过了50%,年度总收入早已超过了1亿美元。随着七款新产品的上市,这种非同凡响的增长速度正在使Freshwork的应用程序架构和开发运营能力变得紧张起来! 随着公司数据库负载的增长,其在性能扩展方面遇到了麻烦:Freshworks需要减轻其主数据库MySQL的负担,但当前的缓存解决方案(由Amazon ElastiCache提供的开源Redis)却产生了很多问题。 Freshworks的工程师Abhishek Dhulipudi表示:ElastiCach不支持实时迁移,如果我们想将数据从一个实例迁移到另一个实例,则需要数周的人工操作以避免停机,这种限制会减慢我们的产品开发生命周期。 Freshworks选择Redis企业云缓存解决方案 在评估了Aerospike和Hazelcast等多个NoSQL内存数据库后,Freshworks决定继续使用具有极高性能和灵活性的Redis。最终,该公司选择了Redis企业云( Redis Enterprise Cloud )来替换性能不佳的Amazon ElastiCache缓存解决方案。 Redis企业云(Redis Enterprise Cloud):唯一的实时多云数据层,完全托管的无服务器云数据库服务 【功能】 将Redis用作一体化数据库和缓存数据库 存储和搜索具有复杂关系的JSON文档 启用实时分析、流式传输和微服务将 获得即时故障转移和备份恢复 同时写入多个地理位置分布式主数据库 安全且经济高效地存储TB级数据 【优势】 灵活部署:部署在任何云、混合或多云架构上 内置耐用性:主分片和副本分片上多个持久性选项 大规模性能:小于1ms的数据库响应时间,每秒支持数百万次操作 低延迟:基于CRDT的 Active-Active 部署维护亚毫秒级数据 成本效益:使用Redis on Flash节省高达 70% 的基础架构成本 Freshworks的工程总监 Naren Janakiraman 说:Redis企业云提供了非常好的服务,我们可以使用市场上最高的内存性能和灵活的数据结构以在各种用例中实现极高的效率,这种完全托管的操作还可以加快应用程序交付。 除了使用 Redis企业版数据库(Redis Enterprise)作为其MySQL数据库的前端缓存之外,Freshworks还将Redis Enterprise用于如下几个方面: - 计量 :出于限速目的,Freshworks 使用 Redis Enterprise Cloud 高度优化的Hash、List和 Sorted Sets 数据结构和内置命令来计量进入Freshdesk的API请求。 - 数据持久存储 :Freshworks使用Redis Enterprise Cloud作为后台作业的持久存储,存储在磁盘中。 - 身份验证微服务-会话存储 :随着Freshworks过渡到微服务,它开始将关键工作负载从其单一的Ruby on Rails Web应用程序框架中分离出来,身份验证则是首批微服务之一。身份验证微服务可以使用Redis Enterprise Cloud作为会话存储。 - 实时分析 :Freshworks利用Redis Enterprise Cloud的强大数据结构(包括HyperLogLog、位图和集合)作为用户分析的前端数据库。 Freshworks的工程师 Dhulipudi表示:进入Freshdesk的每个请求都会以某种方式触及Redis Enterprise Cloud,通过将几个关键数据库功能卸载到Redis Enterprise Cloud,我们能够减少 MySQL数据库实例的数量,同时显著提高应用程序响应时间和扩展能力。 Redis Enterprise帮助Freshworks的业务软件保持高水平性能 作为一个完全托管的数据库即服务产品,Redis企业云的操作非常简单,其自动扩展、故障转移、集群创建、持久性和高可用性是也成为了Freshworks软件产品的巨大卖点。 Janakiraman说: Freshworks有67项服务都在使用 Redis Enterprise Cloud 。如果没有它的无缝功能和自动化功能,我们将会在基础设施和运营管理上投入非常多的资金。Redis Enterprise Cloud的Redis on flash技术将常用的数据放到内存,不常用的数据放到SSD(固态硬盘),这样既可以提高处理速度,又可以节约成本,不仅帮助我们的团队专注于创新和业务增长,还扩展了我们的产品组合并将业务服务发展到新的地区。 Freshworks非常看好Redis Enterprise的技术能力,它认为 Redis Enterprise Cloud的作用正在扩大,在未来能够承担更大的工作负载。Dhulipudi说:借助Redis企业云,我们将实施更多创造性的缓存、持久数据存储、微服务和用户分析用例,使我们的业务软件在行业内保持最高水平的性能。 想要了解更多Redis企业版数据库缓存解决方案,欢迎评论交流!
  • 热度 8
    2022-11-23 10:54
    696 次阅读|
    0 个评论
    数据库性能翻3倍:Redis on Flash分层存储技术是如何做到的?
    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 的性能: i3.8xlarge – 244GB RAM 4xNVMe SSD 驱动器 总计 7.6TB I4i.4xlarge – 128GB RAM 1xNVMe SSD 驱动器 总计 3.75TB I4i.8xlarge – 256GB RAM 2xNVMe SSD 驱动器 总计 7.5TB I4i.16xlarge – 512GB RAM 4xNVMe SSD 驱动器 总共 15TB 2)数据引擎的性能比较 我们比较了两个数据引擎的性能: RocksDB Speedb 测试参数: 我们使用了 1KiB 的值大小,涵盖了大多数标准 Redis 用例 我们测试了 50% 和 85% 的 RAM 命中率(即直接从 RAM 处理的许多请求) 我们测试了 20:80 RAM:Flash 比率 我们对各种读写比率进行了基准测试:1: 1、4:1 和 1: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 倍的性能提升(吞吐量操作/秒):
  • 2022-11-10 11:38
    2 次阅读|
    0 个评论
    【直播精彩回顾】Redis企业级数据库及欺诈检测方案!
    背景导读 从中国互联网络信息中心发布的第50次《中国互联网络发展状况报告统计》来看,截至2022年6月,36.8%的网民表示在过去半年上网过程中遭遇过网络安全问题,各类网络诈骗层出不穷,充斥着人们的生活。 2021年的最新报告显示,互联网技术支持诈骗的损失目前是有史以来最高的,是去年的2倍以上。IC3收到来自70个国家的受害者的23903起与技术支持欺诈有关的投诉,损失金额超过3.47亿美元,比2020年的损失增加了137%。 企业每年因欺诈而损失数百亿美元,受损形式包括罚款、和解酬金以及削弱支撑金融服务行业的信任和客户忠诚度。在过去两年内,有47%的企业曾发生欺诈,零售欺骗案件同比增长2倍,根据PWC报告总的损失为420亿美元。 一、欺诈检测概述 1.欺诈的类型 通过对2019年上半年各种电信网络诈骗手法的举报情况进行盘点归总,聚类分析,归纳为交易诈骗、网络兼职诈骗、金融信用诈骗、盗号诈骗等十大诈骗类型,具体欺诈内容如图所示: 2.什么是欺诈检测 检测欺诈是一个非常复杂的过程。它是对于任何给定的交易或活动,系统需要在几秒钟之内判定这个交易是否存在欺诈。检测欺诈如果不能实时进行,将导致重大损失。同时,欺诈者是与时俱进的,他们与数字银行转型同步,能够快速发现窃取或伪造客户身份的新方法,并进行欺诈。 3.欺诈检测面临的挑战 随着在线交易的增长,检测欺诈变得非常负责。如今的欺诈检测面临着以下的挑战: 现代数字平台为欺诈检测增加了前所未有的复杂性 :当今的数字和移动支付平台是非常复杂和分散的。这些平台出现了很多的软件漏洞,并且这些漏洞是传统欺诈检测技术无法解决的。 跟上即时交易的步伐越来越具有挑战性 :借助现代软件平台,交易几乎可以立即执行。但是为了给客户创造出色体验,银行和支付处理商只有很少的时间来识别和应对欺诈行为。 数字身份带来更大的欺诈风险 :传统上通过物理文件验证的个人信息现在存储在网上,这种存储方式很容易访问。这样一来,一次数据泄露就会使数百万人面临身份盗窃、账户接管和创建虚假身份的风险。 假阳性和延迟是最主要的两个挑战 :假阳性是指系统将用户的合法交易标记为欺诈。延迟是指企业难以在几秒钟内检测到交易是否存在欺诈,因而会默认不存在欺诈。 4.欺诈检测方法 虽然机器学习模型需要在自动MLOps管道的帮助下定期更新,但可以使用基于多层规则的方法来增强欺诈检测。 下面是这些规则的一些例子,例如: 将骗子的IP地址列入黑名单; 从用户的IP地址获取并利用经纬度数据; 利用有关浏览器的类型、版本、操作系统、活动插件、时区和语言的数据; 查看每个用户的购买情况来看这类用户以前是否购买过这些类别的商品。 这些规则可以以一种从“低成本”到“高成本”的方式实施。如果用户在已经做出的类别和最大金额内进行购买,应用程序可以标记交易为非欺诈,就不需要再进一步进行检测。 二、虹科欺诈检测方案 1.虹科HK-Redis概述 Redis是世界上非常流行的内存数据库,它在全球范围内为个性化、机器学习、物联网、搜索、电子商务、社交和计量解决方案提供卓越的性能、无与伦比的可靠性和灵活性。Redis包括Redis开源版本(Redis OSS )和Redis企业版(Redis Enterprise),两者的功能对比,请查看《Redis企业版 VS Redis开源版》。 (1)Redis Enterprise的结构框图 Redis Enterprise 可以为流行的Redis用例提供支持,如高速事务、作业和队列管理、用户会话存储、实时数据获取、通知、内容缓存和时间序列数据。 Redis Enterprise 技术的性能十分优越,可以支持每秒十几万的读写操作,他的性能远超数据库,并且支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据库在内存中,而且能支持一定的事务能力。下图是Redis Enterprise的结构框图。 (2)Redis Enterprise支持的数据类型 Redis Enterprise 的性能之所以如此优越,除了他是基于内存读写,速度比数据库基于磁盘读/写快很多之外,也得益于他的数据结构比较简单。Redis Enterprise支持的五大数据类型包括String、List、Set、Zset、hash,如下图所示。 (3)Redis Enterprise模块 Redis Enterprise模块允许开发人员通过添加对现代数据模型和本机处理引擎的支持来构建实时应用程序,同时继续享受Redis的亚毫秒级速度。使用Redis模块可以帮助用户快速构建强大的应用程序,例如搜索、实时库存监控、分析、游戏等。 Redis Enterprise有7大Redis模块,分别是RediSearch、RedisAI、RedisJSON、RedisTimeSeries、RedisBloom、RedisGears 和RedisGraph,各模块简介如下图所示。 (4)Redis Enterprise的核心功能 Redis Enterprise具有线性可扩展性、高可用性、持久性、备份和恢复、地理分布、分层内存访问、多租户、安全等8大核心功能,下面详细介绍线性可扩展、高可用性、和分层内存访问这三个功能。 线性扩展对处理整体增长和季节性激增问题至关重要 现代应用的分布越来越广,你必须规划出经济有效的方法来扩展你的数据库,来满足整体的增长,同时还要应对季节性的激增和意外的需求高峰。数据库性能的线性扩展对于在没有大规模基础设施投资的情况下实现这一目标至关重要。 Redis通过简单地增加分片和节点实现了无限的线性扩展。2019年,Redis展示了Redis企业版扩展其行业领先的线性可扩展性,在仅40个AWS实例上以不到1ms的延迟实现了2亿次/秒操作。 Redis Enterprise提供不间断的高可用性,正常运行时间为5个9 (99.999%) 通过使用无盘复制、即时故障检测和跨机架、区域和地域的故障切换等技术,Redis Enterprise提供了高可用性,同时比竞争技术更具成本效益。 Redis Enterprise分层确保了亚毫秒级的延迟得到保留 目前,很多公司对规模化实时性能有非常高的需求,因此许多公司正在寻求将其数据存储在更快的内存数据库架构中,但这需要付出很高的成本。一个解决方案使用替代性内存技术将数据分层,这些技术可以提供类似内存的性能,而成本却大大低于DRAM(动态随机存取内存)。 Redis长期以来一直是分层数据库存储的领导者,自2016年以来支持Redis on Flash。2019年,,Redis 企业版宣布支持英特尔Optane DC持久性内存,它在DRAM(动态随机存取内存)和SSD之间提供了一个新的持久性内存层。这两种技术的结合使其在使用实时服务和分析非常大的数据集方面具有很高的成本效益。 (5)Redis Enterprise应用场景 Redis的应用场景十分广泛,具体包括: 企业缓存 :通过快速、可扩展且高度可用的缓存层提升应用程序性能,给用户带来最佳体验。 会话管理 :使用分布式会话管理解决方案构建用户的可信视图。 重复数据删除 :通过概率过滤整理用户的数据来增强用户体验和保留率。 实时排行榜 :为数百万用户提供可靠的结果。 欺诈识别 :轻松处理身份数据、基于 AI 的交易评分和高速统计分析,提供更快的欺诈检测。 实时库存系统 :为在线零售提供动力,为销售活动或促销活动提供最佳性能、规模和可用性。 2.Redis+AWS的欺诈检测方案 (1)Redis Enterprise Cloud on AWS介绍 Amazon Web Services(AWS),是世界上最全面且被广泛采用的云平台,提供来自全球数据中心的200多项服务。Redis和AWS联合推出的Redis Enterprise Cloud on AWS 是一种完全托管的数据库即服务,具有高性能、无限可扩展性和真正的高可用性。 (2)解决方案组件介绍 Redis Enterprise是一个强大的、可扩展的内存数据库,支持高级数据结构。随着模块的增加,Redis Enterprise是非常适合用来进行实时欺诈检测。Redis Enterprise Cloud on AWS可以使用基于多层规则的人工智能方法来增强欺诈检测,解决方案组件如下: 使用RedisBloom,我们可以有效地实现将欺诈者的IP地址列入黑名单; 使用像GeoSearch和GeoPos这样的Redis命令,非常容易利用经纬度数据; 通过RedisJSON和RediSearch模块存储和索引JSON,可以使应用程序实现用户和购买分析逻辑。 Active-Active使Redis成为一个地理分布的数据库,Redis on Flash为大型数据库节省了大量的成本。Active-Active(主备双活复制模式)和Redis on flash是Redis企业版独有的功能。 (3)Redis+AWS欺诈检测方法 如下图所示,Amazon S3存储桶存储着信用卡交易的历史数据集,我们将使用这些数据来训练、测试和部署机器学习模型,并实时进行推断是否存在欺诈。 首先,Amazon Sage Maker 内置随机深林算法和xgboost算法等机器学习算法,我们将使用这些算法进行异常检测和识别。 其次,我们需要部署一个AWS Lambda函数,在这个方法架构中需要重点完成三件事:第一 是处理来自终端用户的实时交易数据,并将这些数据在RedisJSON中发布;第二是Lambda函数将调用Amazon Sage Maker端点,为传入的数据点分配异常分数和分类分数;第三Lambda函数将这些机器学习预测的结果持久化到各种时间序列化数据库中。 最后,AWS Lambda 函数可通过Amazon Kinesis Data Firehose的预测结果,将数据持久化到Amazon S3存储桶,以便Amazon Quick Sight可以对预测的结果进行可视化和分析。 下图是使用这个方法架构在Grafana上运行实时数据可视化的结果: 想要详细了解如何从代码层面来实现这个方法架构,可以关注 【虹科云科技公众号】 私信获取。 三、应用案例 1.simility公司简介 Simility是一家防欺诈解决方案提供商,专注于提供高度可扩展的防欺诈云平台,利用机器学习和人工干预相结合,保护中小企业免受复杂欺诈交易侵害,同时还能帮助防欺诈分析师应对不断演变的欺诈手段,并且不需重新编写代码就能调整防欺诈策略。 2.Simility遇到的欺诈检测问题 Simility公司的欺诈检测系统每天要为云客户处理数亿笔交易,在本地部署中每天需要处理数十亿笔交易。Simility之前一直使用DataStax作为其主要数据存储,但考虑到极高的事务量,IT团队发现DataSta很难满足最终用户的延迟要求,难以处理数百万个连接。 3.Simility公司使用Redis加快欺诈检测速度 Simility决定使用Redis企业版(Redis Enterprise)进行缓存,立即解决了其吞吐量和延迟的问题。使用Redis企业版能够非常低的成本就轻松实现扩展, Simility的能够毫不费力地将解决方案扩展到其他用例,包括高速事务、作业和队列管理以及实时数据摄取。 通过使用Redis Enterprise,Simility公司能够将IT成本降低了30%以上,将应用程序功能的交付速度提高到30%以上、应用程序性能提高了90%,将系统停机时间减少了20%多,同时大幅减少对专业内部IT资源的需求。 原文链接:https://mp.weixin.qq.com/s/wkvKh0TplT_TyAv8sgHmhQ
  • 热度 16
    2022-10-21 11:27
    950 次阅读|
    0 个评论
    Redis数据库角色:不只是缓存,还可以作为主数据库!
    一、Redis 作为主数据库是如何工作的? Redis最初是一个缓存数据库,到后来才演变为一个主数据库。目前构建的许多应用程序都使用Redis作为主数据库( Redis入门指南 )。但是,大多数Redis服务提供商仅支持Redis作为缓存,却不支持Redis作为主数据库。这意味着,除了使用Redis之外,企业还需要一个单独的数据库,例如DynamoDB。这不仅会增加复杂性、降低延迟,还会阻止企业充分发挥Redis的潜力。 Redis连续三年被StackOverflow评为最受喜爱的数据库。目前已经启动了超过20亿个Redis Docker容器。网络上有非常多的关于Redis的专业知识,当Redis开发人员陷入困境时,有非常多的资源书籍、教程、博客文章等来帮助开发人员解决问题。 当前也有数百个Redis客户端库,涵盖了所有主要的编程语言,甚至一些晦涩难懂的语言。在许多语言中,开发人员可以从各种库中进行选择,以获得正确的样式和抽象级别。Redis是一个具有数据大小范围的数据库,从几兆字节到数百兆字节不等。 借助 Redis Enterprise ,用户可以 将Redis作为单个系统中的内存缓存和主数据库,从而消除两个独立系统之间的复杂性和延迟 。不仅如此,用户还可以将它用作 多模型主数据库 ,使用户能够 在Redis之上构建现代应用程序并构建基于微服务的低延迟架构 。 与其依赖单独的数据库和缓存,不如 利用Redis Enterprise 的原生特性(Redis模块 ),例如 *用于收集和分发数据的流 *RedisJSON用于存储JSON文档 *RediSearch二级索引 *用于复杂关系的RedisGraph *RedisTimeSeries用于应用程序监控 *edisBloom用于游戏、欺诈检测和排行榜 *RedisAI用于实时 AI 特征存储和推理 通过 自动扩展、企业集群和主动-主动地理分布 利用上述所有功能。 二、Redis可扩展性和内置数据结构 扩展缓存和数据库通常很复杂的。每个数据层的扩展方式不同,会在不同的时间到达基础设施并获得优化机会。即使架构的任何给定部分可能很快,但每个项目都会增加某种延迟,无论是通过数据库本身还是通过项目之间的连接。因此,减少移动部件的数量可以减少延迟,转到单个数据存储也能消除多次内部网络遍历。最后,使用单个数据存储开发应用程序只需要一个编程接口。因此,开发人员只需要了解单个数据库的复杂性,而不是数据库和缓存。这降低了开发过程中上下文切换的成本。 1.使用Redis进行扩展 Redis 企业版(Redis Enterprise)的Active-Active部署 对于实现 99.999% 的 可靠性和全球可扩展性 是不可或缺的。这意味着可以将单个数据集复制到分布在广泛地理区域的许多集群中,每个集群仍然能够完全接受读取和写入。 Redis Enterprise使用无冲突复制数据类型 (CRDT) 自动解决数据库级别的任何冲 突,并且不会丢失数据。广泛分布集群可在本地地理延迟下保持数据可用,能够增加弹性以应对灾难性的基础设施故障。 2.Redis中的内置数据结构 许多应用程序的数据需求相对简单,可以通过Redis内置的数据结构轻松支持。Redis使用长期建立的高效模式来实现基本数据结构。对于用户而言,Redis提供了一个可扩展的引擎,允许模块只添加所需的功能,而不再添加其他功能。这种方法展现了Redis的持久性——Redis让用户可以通过 定期快照 实现持久性,或者通过 仅附加文件 (AOF) 一直提高到写入时持久性。Redis可以根据您的用例在性能和耐用性之间做出最佳权衡。 三、面向未来的数据库性能 未来,企业对数据库实现的绩效会有越来越高的期望。企业绝不可可能说:“我希望我们的数据库能慢一点。” 相反,在考虑构建现代应用程序的基础上,数据库软文应该是实时的、易于开发的、操作优雅的、可扩展的和面向未来的。 Redis 虽然提供了出色的数据库缓存,但扩展Redis作为主数据库的角色更应该被用户看到,它可以让开发人员在构建未来的应用程序实现领先。
相关资源
  • 所需E币: 0
    时间: 2023-12-14 10:32
    大小: 2.41KB
    上传者: 开心就很好了
    今天给大家讲讲关于多级网关与多级缓存架构的相关知识,在文章里面,我将从0到1带着大家构建基础服务接口,通过层层递进优化服务,使得服务具备多级缓存的特性,并融合OpenResty拓展一个强大的多级网关+多级缓存的技术架构。以下就是代码实战展示:引入springboot3的maven依赖,本质上作为pom引入,直接管理他的版本号,后续用到啥组件直接拿来即用:<dependencies>  <!--引入SpringBoot依赖-->  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter</artifactId>  </dependency>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>  </dependency>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-configuration-processor</artifactId>  </dependency>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-aop</artifactId>  </dependency>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jdbc</artifactId>  </dependency></dependencies>dependencyManagement依赖管理全代码依赖配置如下:<!--  使用dependencyManagement的目的是为了保证当前父工程的干净,  也就是说父工程他只负责对依赖(坐标)的管理,以及依赖的版本管理,而不会去引入额外的jar依赖  如此一来,父工程的职责就相当的单一了,而且也符合面向对象的理念,是一种父子一来继承的关系  依赖的导入只有在各自的子工程中才会导入。--><dependencyManagement>  <dependencies>    <!--mysql驱动-->    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>8.0.33</version>    </dependency>    <!--持久层mybatis-->    <dependency>      <groupId>com.baomidou</groupId>      <artifactId>mybatis-plus-boot-starter</artifactId>      <version>3.5.0</version>    </dependency>    <dependency>      <groupId>com.github.pagehelper</groupId>      <artifactId>pagehelper-spring-boot-starter</artifactId>      <version>1.4.1</version>    </dependency>    <!--jackson-->    <dependency>      <groupId>com.fasterxml.jackson.core</groupId>      <artifactId>jackson-core</artifactId>      <version>2.14.2</version>    </dependency>    <dependency>      <groupId>com.fasterxml.jackson.core</groupId>      <artifactId>jackson-annotations</artifactId>      <version>2.14.2</version>    </dependency>    <dependency>      <groupId>com.fasterxml.jackson.core</groupId>      <artifactId>jackson-databind</artifactId>      <version>2.14.2</version>    </dependency>    <!--apache工具类-->    <dependency>      <groupId>commons-codec</groupId>      <artifactId>commons-codec</artifactId>      <version>1.15</version>    </dependency>    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-lang3</artifactId>      <version>3.12.0</version>    </dependency>    <dependency>      <groupId>commons-fileupload</groupId>      <artifactId>commons-fileupload</artifactId>      <version>1.4</version>    </dependency>    <dependency>      <groupId>commons-io</groupId>      <artifactId>commons-io</artifactId>      <version>2.11.0</version>    </dependency>    <dependency>      <groupId>org.apache.httpcomponents</groupId>      <artifactId>httpclient</artifactId>      <version>4.5.13</version>    </dependency>    <!--google工具类-->    <dependency>      <groupId>com.google.guava</groupId>      <artifactId>guava</artifactId>      <version>28.2-jre</version>    </dependency>  </dependencies></dependencyManagement>使用zaddzset10value120value230value3:设置member和对应的分数zrangezset0-1:查看所有zset中的内容zrangezset0-1withscores:带有分数zrankzsetvalue:获得对应的下标zscorezsetvalue:获得对应的分数zcardzset:统计个数zcountzset分数1分数2:统计个数zrangebyscorezset分数1分数2:查询分数之间的member(包含分数1分数2)zrangebyscorezset(分数1(分数2:查询分数之间的member(不包含分数1和分数2)zrangebyscorezset分数1分数2limitstartend:查询分数之间的member(包含分数1分数2),获得的结果集再次根据下标区间做查询zremzsetvalue:删除member在common中引入的坐标依赖<dependency>  <groupId>org.apache.commons</groupId>  <artifactId>commons-lang3</artifactId></dependency><dependency>  <groupId>com.fasterxml.jackson.core</groupId>  <artifactId>jackson-core</artifactId></dependency><dependency>  <groupId>com.fasterxml.jackson.core</groupId>  <artifactId>jackson-annotations</artifactId></dependency><dependency>  <groupId>com.fasterxml.jackson.core</groupId>  <artifactId>jackson-databind</artifactId></dependency><dependency>  <groupId>com.fasterxml.jackson.datatype</groupId>  <artifactId>jackson-datatype-jsr310</artifactId></dependency>迭代查询代码,一级缓存与二级缓存结合:@GetMapping("query")publicObjectquery(Stringid){  StringarticleKey="article:"+id;  StringarticleKeyRedis="REDIS_ARTICLE:"+id;  Articlearticle=cache.get(articleKey,s->{    System.out.println("文章id为"+id+"的没有查询到,则从Redis中查询后返回...");    ArticlearticleReal=null;    StringarticleJsonStr=redis.get(articleKeyRedis);    //判断从redis中查询到的文章数据是否为空    if(StringUtils.isBlank(articleJsonStr)){      System.out.println("Redis中不存在该文章,将从数据库中查询...");      //如果为空,则进入本条件,则从数据库中查询数据      articleReal=articleService.queryArticleDetail(id);      //手动把文章数据设置到redis中,后续再次查询则有值      StringarticleJson=JsonUtils.objectToJson(articleReal);      redis.set(articleKeyRedis,articleJson);    }else{      System.out.println("Redis中存在该文章,将直接返回...");      //如果不为空,则直接转换json类型article再返回即可      articleReal=JsonUtils.jsonToPojo(articleJsonStr,Article.class);    }    returnarticleReal;  });  returnarticle;}本文到此结束,感谢大家的阅读!
  • 所需E币: 1
    时间: 2023-3-29 21:32
    大小: 1.15MB
    上传者: 指的是在下
    一种考虑防护措施的缓存可靠性评估方法.pdf
  • 所需E币: 1
    时间: 2023-3-29 12:42
    大小: 1.24MB
    上传者: 指的是在下
    面向媒体处理可重构系统中数据缓存结构和缓存管理策略优化.pdf
  • 所需E币: 4
    时间: 2023-2-11 10:58
    大小: 1.38MB
    上传者: ZHUANG
    基于缓存价值的命名数据网络缓存优化策略.
  • 所需E币: 0
    时间: 2023-2-9 21:53
    大小: 1.18MB
    上传者: ZHUANG
    一种空间信息网络缓存决策策略
  • 所需E币: 5
    时间: 2023-2-8 14:33
    大小: 2.71MB
    上传者: ZHUANG
    基于深度学习的空天地缓存中继网络性能评估方法
  • 所需E币: 1
    时间: 2022-9-24 11:41
    大小: 1.82MB
    上传者: czd886
    基于缓存辅助的全双工无线携能通信系统的中继选择策略
  • 所需E币: 0
    时间: 2022-7-13 10:50
    大小: 1.06MB
    上传者: czd886
    地空异构网络中无人机辅助的文件协作缓存算法
  • 所需E币: 1
    时间: 2022-7-8 16:17
    大小: 219.47KB
    上传者: ZHUANG
    一种用于宽带卫星通信网络的跨层星上缓存管理策略
  • 所需E币: 1
    时间: 2022-7-7 10:52
    大小: 1.6MB
    上传者: ZHUANG
    大规模无线通信网络移动边缘计算和缓存研究
  • 所需E币: 1
    时间: 2022-7-7 10:42
    大小: 1.78MB
    上传者: ZHUANG
    层次化通信网络备份数据库缓存子系统设计.
  • 所需E币: 1
    时间: 2022-7-7 10:09
    大小: 1.93MB
    上传者: ZHUANG
    5G移动通信网络中缓存与计算关键技术的探究
  • 所需E币: 1
    时间: 2022-5-17 22:25
    大小: 1.42MB
    上传者: czd886
    智能型移动通信5G网络主动缓存技术分析
  • 所需E币: 1
    时间: 2022-5-12 15:45
    大小: 2.27MB
    上传者: czd886
    基于公交车缓存机制的移动数据分流研究
  • 所需E币: 1
    时间: 2022-5-12 10:52
    大小: 3.87MB
    上传者: czd886
    基于移动感知缓存的无线通信网络建模与优化.
  • 所需E币: 1
    时间: 2022-5-10 10:19
    大小: 1.67MB
    上传者: czd886
    5G移动通信缓存技术的特点及应用研究
  • 所需E币: 1
    时间: 2022-5-9 10:56
    大小: 4.47MB
    上传者: czd886
    云接入网络联合资源分配与高效缓存方法研究
  • 所需E币: 5
    时间: 2021-9-10 23:02
    大小: 1.91MB
    上传者: czd886
    一种基于强化学习的嵌入式系统抗拒绝服务攻击的缓存调度方案
  • 所需E币: 0
    时间: 2021-4-21 02:10
    大小: 356.16KB
    上传者: LiuSirSZ
    STM32缓存对齐的问题.pdf
  • 所需E币: 0
    时间: 2020-12-25 15:03
    大小: 1.26MB
    上传者: czd886
    基于串口波特率的ARM通信机发送缓存的动态管理