Redis企业云如何通过缓存轻松扩展到亿级请求?

news2024/11/24 5:47:45

你是否在春运抢票过程中遇到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企业云如何通过缓存轻松扩展到亿级请求?》
《Redis企业版数据库简介》

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

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

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

相关文章

Annotation(注解)

一、注解概述1.从 JDK 5.0 开始,Java 增加了对元数据(MetaData) 的支持,也就是Annotation(注解)2.Annotation 其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用 Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些…

Go第 6 章:函数、包和错误处理

Go第 6 章:函数、包和错误处理 6.1 为什么需要函数 6.1.1请大家完成这样一个需求: 输入两个数,再输入一个运算符(,-,*,/),得到结果.。 6.1.2使用传统的方法解决 分析一下上面代码问题 上面的写法是可以完成功能, 但是代码冗余同时不利于代码维护函数…

SAP FICO 成本对象控制解析

成本对象控制(Cost Object Cotrol)是指对不同的成本对象,比如成本收集器、生产订单、销售订单等进行成本的期末结算。基于这些不同的成本对象,SAP在成本对象控制菜单下面细分了相应的操作(SAP 菜单 →会计核算 →控制 …

JavaScript篇.day10-面向对象,对象,构造函数,this关键字,原型

目录面向对象对象构造函数this关键字原型面向对象面向过程: 在开发过程中,关注过程的开发方式. 在开发时关注每一个细节,步骤和顺序.面向对象: 在开发过程中,只需要找一个对象来完成事情的开发思想对象: 在生活中,万物皆对象 封装: 将完成步骤封装在对象内部属性: 对象的特征核…

Java泛型上界与泛型方法的应用 | 如何通过泛型类获取任意类型的三个数的最大值?

目录 一、引言 二、泛型上界 1、什么是泛型的上界 2、泛型上界的语法 三、泛型方法 1、泛型方法的语法 2、泛型方法的类型推导 三、编程分析 1、MyCompare泛型类 2、泛型方法实现 四、总结 一、引言 初学Java时,同学们基本都会遇到这样一个基础编程题&am…

平面设计师去哪里找素材?

5个平面设计素材网站,赶紧收藏! 1、菜鸟图库 https://www.sucai999.com/?vNTYwNDUx ​ 站内平面海报、UI设计、电商淘宝、免抠、高清图片、样机模板等素材非常齐全。还有在线抠图、CDR版本转换功能,能有效的为设计师节省找素材时间&#x…

MySQL查询训练题1

表信息: dept表和emp表 bonus表和salgrade表 练习题: 1、选择部门30中的所有员工; select * from Emp where DEPTNO30;2、列出所有办事员(CLERK)的姓名,编号和部门编号; select ENAME 姓名,EMPNO 编号,DEPTNO 部门…

【vue2中使用axios和插槽】一.组件的生命周期;二.vue2中使用axios;三.插槽

目录 一.组件的生命周期 1.组件的生命周期经历的阶段: (1)创建阶段:beforeCreate、created、beforeMount、mounted (2)运行阶段:beforeUpdate、update (3)销毁阶段&a…

C++ 学习 Day.10(标准模板库简介)

标准模板库: 简单地说,标准模板库(STL)是一组模板类和函数,向程序员提供了: • 用于存储信息的容器; • 用于访问容器存储的信息的迭代器; • 用于操作容器内容的算法。 关于STL可见…

Git学习和使用

目录:Git概念和知识Git的四个工作区域和工作流程Git 的四个工作区域Git 的工作流程git文件状态常用操作进阶操作单个本地库绑定多远程仓库方案Git概念和知识 Git的四个工作区域和工作流程 Git 的四个工作区域 Remote:远程仓库 位于托管代码的服务器&a…

【语义分割】语义分割综述文章

目录:语义分割一、什么是语义分割二、什么是图像中的语义信息?三、语义分割中的上下文信息四、语义分割方法五、语义分割神经网络六、目前比较经典的网络七、评价指标一、什么是语义分割 语义分割,也称为像素级分类问题,其输出和…

如何远程访问别人的MySQL数据库

1、 如何远程访问别人的MySQL数据库 - curryzwy - 博客园 (cnblogs.com)https://www.cnblogs.com/curryzwy/p/15730485.html 2、 mysql——同一局域网如何共同访问一台电脑的数据库(胎教级教学)_七月星辰的博客-CSDN博客_两台电脑共用一个mysql数据库…

1803. 统计异或值在范围内的数对有多少

解法一:字典树 前置知识:字典树 字典树是一种实现字符串快速检索的多叉树结构。 例如:给定字符串集合[cab, cos, car, cat], 我们现在需要判断cat是否存在于字符串集合中。 字典树代码: static int[][] trie new int[N][26]; …

AcWing 1221. 四平方和(二分或哈希)

一、题目描述 二、思路分析 先从时间复杂度的角度入手,这道题的数据范围是106,因此我们的时间复杂度要控制在O(n)O(n)O(n)或者O(nlogn)O(nlogn)O(nlogn)。 对于abcd中的任何一个元素,必定是小于n\sqrt nn​的。 我们的一个思路就是去枚举&…

如何选择用 .net Framework 或 .net core

小米问: 给你一个项目,如何选择用 netframework 或 netcore?如何选择服务器? 怎么去考虑? 咋回答呢 答: 不要考虑.net framework 除非极其特殊的情况 比如目标主机系统版本较低 服务器自然是linux好&a…

2023年考证时间一览表

2022年已经成为历史,在疫情背景全面开放下给大家整理了2023年全年的考试时间以及报名时间新鲜出炉,了解清楚,为2023年提前做好规划! 1月份 2022年下半年中小学教师资格考试面试 报名时间:2022年12月9日-12日 考试时间…

大数据:Hive视图和索引

一、视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时&#xff0…

【自学C++】Windows安装C++语言开发环境

Windows安装C语言开发环境 Windows安装C语言开发环境教程 C 的开发环境可以直接使用 C 语言 的开发环境, 同时,Windows 本身就自带 C 语言的运行环境,因此,为了开发 C 语言,我们只需要安装一个 C 语言的开发工具即可…

第03讲:HTTP操作之ElasticSearch文档操作

3.1.2、文档操作 实验1:创建文档 索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式 在 Postman 中,向 ES 服务器发 POST 请求 :http://1…

【Kafka】Java实现数据的生产和消费

【Kafka】Java实现数据的生产和消费 Kafka介绍 Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka 有如下…