摘要:GaussDB(for Redis)(下文简称高斯Redis)是华为云数据库团队自主研发的兼容Redis协议的云原生数据库,该数据库采用计算存储分离架构,突破开源Redis的内存限制,可轻松扩展至PB级存储。

本文将从存储架构、四大特性、竞争力、应用场景等方面进行介绍。

存储架构

高斯Redis基于计算存储分离架构,计算层实现热数据缓存,存储层实现全量数据的落盘,中间通过RDMA高速网络互连,通过算法预测用户的访问规律,实现数据的自动冷热交换,最终达到极致的性能提升。

四大特性

该架构基于华为内部强大且广泛使用的自研分布式存储系统DFV,实现了一套Share Everything的云原生架构,充分发挥了云原生的弹性伸缩、资源共享的优势,使得高斯Redis具备强一致、秒扩容、低成本、超可用的四大特点,完美避开了开源Redis的主从堆积、主从不一致、fork抖动、内存利用率只有50%、大key阻塞、gossip集群管理等问题。

  • 强一致

数据复制是存储的事情,因此专业的事情交给专业的团队来做。通过分布式存储DFV,高斯Redis轻松实现了3副本强一致,并可轻松支持6副本,为业界首创。

在强一致架构下,用户再也不用担心开源Redis的主从堆积,带来的丢数据、不一致、OOM等极端问题,更不用担心业务出错,比如计数器、限流器、访问统计、hash字段等不一致。

  • 秒扩容

数据规模膨胀之后,扩容是个高危且困难的操作。高斯Redis基于云原生架构,将扩容分成计算层和存储层。计算层扩容,无需任何数据搬迁,只需修改路由映射,即可秒级完成。存储层是个共建的超级数据湖,其容量巨大,而且扩容是切成细腻度的64MB数据分区,对上层数据库业务几乎无感。

因此高斯Redis可以轻松支撑业务的大规模膨胀,并且真正做到计算/存储分层的按需扩容和购买。

  • 低成本

高斯Redis相对于开源Redis,在存储介质上使用了磁盘替代内存。一方面,由于采用存算分离架构,计算资源少了一半,即没有从节点;另一方面,存储资源按需购买,无任何浪费,并且采用了逻辑/物理压缩。最终,每GB综合成本不到开源Redis的十分之一。

  • 超可用

开源Redis或友商Redis不管单分片还是集群,其数据复制都采用主从架构,导致N个节点的集群,如果同时挂掉一对主从(即2个节点),整个集群就不可用。而高斯Redis采用存算分离之后,每个计算节点都可以看到并共享所有数据,因此N个节点,最多可以容忍挂掉N-1个节点,真正做到比高可用还高的可用性。

竞争力分析

场景推荐

高斯Redis不仅性能逼近缓存,而且其存储能力(扩展性、高性能、易用性)超越数据库。因此除了缓存场景可以选择高斯Redis以外,上至PB级别大规模数据存储都可以选择高斯Redis。场景参考如下:

选择建议

命令兼容

兼容5.0协议,包括string/hash/list/zset/set/stream/geo/ HyperLogLog/bitmap/pubsub等等,但出于性能和安全性考虑,禁用个别危险命令,

详细参考:https://support.huaweicloud.com/usermanual-nosql/nosql_09_0076.html

容量参考

以往用户选择开源Redis的时候,需要购买内存,比如用户数据是100G,由于开源Redis内存使用率减半,需要购买200G内存,并且为了高可用,还得购买200G的从节点,那么加起来就是400G的内存。但是购买高斯Redis时,用户只需要根据真实存放的数据大小,按需选择购买存储空间即可,内存只是为了性能加速(内存/磁盘比越大,性能越好)。

附:资料参考

1.《华为云GaussDB(for Redis)与自建开源Redis的成本对比》

https://www.modb.pro/db/42739

2. 《一场由fork引发的超时,让我们重新探讨了Redis的抖动问题》https://bbs.huaweicloud.com/blogs/227525

3. 《当Redis遇见计算存储分离》

https://developer.huaweicloud.com/hero/forum/thread-83188-1-1.html

4. 《GaussDB(for Redis)与原生Redis的性能对比》

https://bbs.huaweicloud.com/blogs/236949

点击关注,第一时间了解华为云新鲜技术~

突破开源Redis的内存限制,存算分离的GaussDB到底有多能“装”?的更多相关文章

  1. 存算分离实践:JuiceFS 在中国电信日均 PB 级数据场景的应用

    01- 大数据运营的挑战 & 升级思考 大数据运营面临的挑战 中国电信大数据集群每日数据量庞大,单个业务单日量级可达到 PB 级别,且存在大量过期数据(冷数据).冗余数据,存储压力大:每个省公 ...

  2. 存算分离下写性能提升10倍以上,EMR Spark引擎是如何做到的?

    ​引言 随着大数据技术架构的演进,存储与计算分离的架构能更好的满足用户对降低数据存储成本,按需调度计算资源的诉求,正在成为越来越多人的选择.相较 HDFS,数据存储在对象存储上可以节约存储成本,但与此 ...

  3. 腾讯云 CHDFS — 云端大数据存算分离的基石

    随着网络性能提升,云端计算架构逐步向存算分离转变,AWS Aurora 率先在数据库领域实现了这个转变,大数据计算领域也迅速朝此方向演化. 存算分离在云端有明显优势,不但可以充分发挥弹性计算的灵活,同 ...

  4. ClickHouse 存算分离架构探索

    背景 ClickHouse 作为开源 OLAP 引擎,因其出色的性能表现在大数据生态中得到了广泛的应用.区别于 Hadoop 生态组件通常依赖 HDFS 作为底层的数据存储,ClickHouse 使用 ...

  5. 从 Hadoop 到云原生, 大数据平台如何做存算分离

    Hadoop 的诞生改变了企业对数据的存储.处理和分析的过程,加速了大数据的发展,受到广泛的应用,给整个行业带来了变革意义的改变:随着云计算时代的到来, 存算分离的架构受到青睐,企业开开始对 Hado ...

  6. 华为云企业级Redis揭秘第16期:超越开源Redis的ACID"真"事务

    摘要: 开源Redis只支持伪事务,应用场景受限.高斯Redis发布企业级事务特性,支持完备ACID,为交易.库存等上层业务带来全新可能. 本文分享自华为云社区<华为云企业级Redis揭秘第16 ...

  7. 突破冯·诺依曼架构瓶颈!全球首款存算一体AI芯片诞生

    过去70年,计算机一直遵循冯·诺依曼架构设计,运行时数据需要在处理器和内存之间来回传输. 随着时代发展,这一工作模式面临较大挑战:在人工智能等高并发计算场景中,数据来回传输会产生巨大的功耗:目前内存系 ...

  8. Redis系列--内存淘汰机制(含单机版内存优化建议)

    https://blog.csdn.net/Jack__Frost/article/details/72478400?locationNum=13&fps=1 每台redis的服务器的内存都是 ...

  9. 深入了解一下Redis的内存模型!

    一.前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字 ...

  10. Redis的内存和实现机制

    1. Reids内存的划分 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码.常量池等 缓冲内存,客户端缓冲区.复制积压缓冲区.AOF缓冲区 ...

随机推荐

  1. Spring Boot整合OAuth2实现GitHub第三方登录

    Github OAuth 第三方登录示例 1.第三方登录原理 第三方登录的原理是借助OAuth授权来实现,首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码,然后客户端拿着授权码与授权服务 ...

  2. docker简单部署

    docker 安装部署-yun yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docke ...

  3. 数据结构与算法(LeetCode)第一节:认识复杂度,对数器,二分法与异或运算

    一.认识复杂度 1.评估算法优劣的核心指标: 时间复杂度:当完成了表达式的建立,只要把最高阶项留下即可.低阶项都去掉,高阶项的系数也去掉,记为O(去掉系数的高阶项): ​ 时间复杂度是衡量算法流程的复 ...

  4. JAVA类的加载(1) ——类的加载及类加载器介绍

    过程:当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载.连接.初始化三个步骤来对该类进行初始化,有时候称为类加载(类初始化)   类加载 定义:类加载 指的是将类的class文件读入 ...

  5. Redis系列之常见数据类型应用场景

    目录 String 简单介绍 常见命令 应用场景 Hash 简单介绍 常见命令 应用场景 List 简单介绍 常见命令 应用场景 Set 简单介绍 常见命令 应用场景 Sorted Set(Zset) ...

  6. C语言输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数。

    #include<stdio.h> void main() { char c; int letter = 0, space = 0, digit = 0, other = 0; print ...

  7. 【开源】int,long long去一边去:高精度大合集!

    加法 \(add\) string add(string s1, string s2) { //时间复杂度 O(log n) string res = ""; int c = 0, ...

  8. 基于OpenAi通用特定领域的智能语音小助手

    无穷尽的Q&A 钉钉...钉钉... 双双同学刚到工位,报销答疑群的消息就万马纷沓而来.她只能咧嘴无奈的摇摇头.水都还没有喝一口就开始"人工智能"的去回复.原本很阳光心情开 ...

  9. 一个Blazor+WinForm+MAUI+PDA实现的条码比对系统

    条码比对系统是由单机版桌面软件和Android版的PDA扫码软件组成,桌面软件采用Blazor与WinForm进行混合开发,PDA扫码软件采用MAUI进行开发,这个项目都是基于.NET技术进行构建,这 ...

  10. [Codechef REBXOR]Nikitosh and xor (Trie,异或)

    题目传送门 分析:首次考虑暴力枚举 \(l_{1},r_{1},l_{2},r_{2}\),配合前缀和时间复杂度 \(O(N^{4})\),需要想办法优化.对于这种两段区间不重合的,我们考虑枚举两段区 ...