阿里云数据库Redis正式上线Tair持久存储系列 提供大规格命令级持久化能力的云上Redis服务

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 该自研产品打破了传统Redis中的数据只能在易失性存储上进行读写的刻板印象,针对客户不同业务阶段的数据存储要求与服务成本考量,全新实现了持久性更强、成本更低的KV数据库。

2020年9月20日,阿里云云数据库Redis正式上线Tair(又称阿里云Redis企业版)持久存储系列,该系列包含两种产品形态:持久内存型和容量存储型。该系列产品是Tair系列继性能增强型和混合存储型后又一力作,其兼容原生Redis的数据结构和接口,并具备更大容量规格、抖动更低且命令级数据持久化的能力。该自研产品打破了传统Redis中的数据只能在易失性存储上进行读写的刻板印象,针对客户不同业务阶段的数据存储要求与服务成本考量,全新实现了持久性更强、成本更低的KV数据库。

>>发布会传送门

点击了解产品详情


开源Redis的三大痛点

Redis 是目前全球最主流的Key-Value 数据库产品,作为高速缓存,在缓解系统大并发高压力的场景上已经被无数开发者和企业所认可,尤其在各种行业和场景都有着非常广泛的应用,可以说Redis是应对高并发、大流量、低延迟业务场景的不二选择。然而,随着客户业务的快速发展,Redis对业务的重要性持续上升的同时系统压力和数据量也不断地攀升,这时原生开源Redis便会出现如下的一些矛盾:

1.数据可靠性与在各场景种广泛使用Redis之间的矛盾。Redis有丰富的数据结构和操作,除了作为后端数据库的前置高速缓存外,还在诸多实际涉及到数据更改的业务场景上发挥着重要的作用,这是用户往往会关注数据持久化能力。在开源Redis中,用户可以使用AOF的Always对每条命令都进行fsync刷盘来保证数据可靠性,但是该配置会导致整体性能大幅度下降,因此生产环境往往采用另一个AOF策略,即Everysecond每秒持久化。即便如此,在一个高吞吐的场景下(例如10万TPS),一秒的数据丢失可能就意味着数万条数据记录的丢失,这是一些对数据可靠性要求很高的用户无法接受的,这个特点也在本质上直接制约了Redis在更多场景下的深入使用。

2.服务高性能与数据可靠性之间的矛盾。当开源Redis使用AOF得到秒级数据持久化能力的同时,该机制还需要进行定期的BGREWRITEAOF操作,通过fork一个进程在后台清理持续增长的AOF文件,在大容量实例下的fork问题会带来服务明显的抖动,在一些服务抖动敏感的场景,例如游戏对战,用户体验会大打折扣。另外,在大容量Redis启动时加载持久化文件会耗时很久,缓存无法做到快速恢复。可以说,开源版无法同时拥有服务全程高性能和数据持久化。

3.快速攀升的成本与业务不同阶段的服务访问热度之间的矛盾。开源Redis的数据读写均发生在内存,随着数据规模增大,内存资源占用会随之递增,而每台服务器可使用内存又是一个较小的有限值,因此服务器数量也随着被迫快速上升,整体服务成本会大幅度攀升。另一方面,随着业务的发展,当业务进入发展后期,数据量已经形成一定规模,而数据的访问频度则慢慢降下来,如果在保持现有应用架构和逻辑不变的情况下降低数据存储的成本便是首位考虑要素。而开源Redis只能使用较为昂贵的内存进行数据存取,没有平滑的替代方案,客户往往在这种情况下陷入两难。

综上所述,随着客户放在Redis中的数据越来越多且愈加重要,开源Redis本身可能在上述三个方面都无法满足客户更高的业务场景与服务成本要求。

Tair 完美解决上述三大痛点

基于上述的痛点,阿里云Redis团队在自研内存数据库系列Tair中推出了针对不同数据温度场景的持久内存型和容量存储型,二者作为持久存储系列的两种产品形态,其工作原理均是将数据放置在非易失性存储介质上,在数据库启动时无需进行数据加载,应用直接访问相关数据,在写入数据时也能保证命令级的数据可靠性,写入一条数据即持久化存入非易失性介质,同时也消除了fork带来的服务抖动,而对业务应用则保持Redis的通信协议和数据结构与API,用户像使用一个原生Redis一样轻松上手使用它们。在硬件上,利用Intel傲腾(AEP)与阿里云ESSD云盘等先进硬件,在实现命令级持久化的同时有效的为客户降低了整体服务拥有成本。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

图1. 原生Redis与阿里云Tair的持久化机制对比

持久内存型是基于Intel 傲腾(AEP)持久内存技术,兼容绝大部分Redis数据结构和命令,并利用AEP的App Direct模式实现了高性能下的命令级持久化能力。在性能测试中其读写性能约为开源Redis的90%,而在定价上,由于新硬件带来的成本红利,该产品形态的定价是阿里云社区版Redis价格的70%左右,整体性价比更高,适用于要求高吞吐、低延迟同时对数据可靠性要求高的热数据存取场景。

容量存储型是基于阿里云ESSD云盘技术,兼容Redis 核心数据结构与命令,对标市面上基于RocksDB构建的大容量、兼容Redis的数据存储系统,提供了超大容量、平均性能有所妥协的温冷数据存取服务。在基准性能测试中其基础数据类型读性能中位数约为开源Redis的70%,写性能中位数约为开源内存版的55%,而服务拥有成本最低可降低至阿里云Redis社区版的15%左右,适用于高存储密度、低访问频率,对数据持久化要求高,且成本作为首要考虑因素的温冷数据存取场景。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

图2.阿里云Tair持久内存型与容量存储型

阿里云产品负责人黄鹏程(花名马格)表示,随着Tair持久存储系列的两种产品形态的发布,Tair的产品系列已经覆盖了从高访问强度到高存储密度的全线企业级Redis服务。阿里云云数据库Redis会将Redis作为用户上云快速接入、体验原汁原味开源Redis的云上服务,同时重点打造集团自研KV存储Tair这款企业级云原生内存数据库,全面覆盖客户不同业务阶段对于Redis性能、功能与成本的更高要求。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

图3.阿里云Tair产品矩阵

随着云计算的技术发展,云原生数据库已取代传统数据库成为市场主流。阿里云是国内最早推出云数据库的厂商之一,至今为止已经形成了完整的产品布局,拥有关系型数据库、NoSQL数据库、数据仓库、数据库生态工具和云数据库专属集群五大板块。其中NoSQL数据库中的阿里云 Redis 从 2015 年商用以来,一直是全球领先的云内存数据库产品,拥有Redis和Tair两个主要产品,其背后的研发团队拥有众多顶级Redis社区Committer,并在Redis全球核心团队(共五人)中拥有一名核心成员,在Redis技术发展中持续为社区做出贡献。

除此之外,我们还为用户提供了Redis云数据库专属集群:(https://www.aliyun.com/product/apsaradb/cddc
这是阿里云专为大中型企业用户定制优化的解决方案,填补了市场空白,具有资源独享、自主可运维、多数据库混合部署等特点,让用户既享受到云数据库的灵活性,又满足了企业对数据库合规性、高性能和安全性要求,最大限度地保留了企业 IDC 运维管理模式,减少企业上云阻力,助力企业数字化转型。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
77 6
|
14天前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用哈希槽分区算法,共有16384个哈希槽,每个槽分配到不同的Redis节点上。数据操作时,通过CRC16算法对key计算并取模,确定其所属的槽和对应的节点,从而实现高效的数据存取。
43 13
|
14天前
|
存储 NoSQL Redis
【赵渝强老师】Redis的存储结构
Redis 默认配置包含 16 个数据库,通过 `databases` 参数设置。每个数据库编号从 0 开始,默认连接 0 号数据库,可通过 `SELECT <dbid>` 切换。Redis 的核心存储结构包括 `dict`、`expires` 等字段,用于处理键值和过期行为。添加键时需指定数据库信息。视频讲解和代码示例详见内容。
|
1月前
|
监控 NoSQL Redis
开发者如何使用阿里云Redis
【10月更文挑战第2天】开发者如何使用阿里云Redis
257 0
|
2月前
|
存储 NoSQL Redis
2)Redis 的键值对长什么样子,又是怎么存储的?
2)Redis 的键值对长什么样子,又是怎么存储的?
45 0
|
NoSQL 测试技术 Redis
Redis命令性能优化及事务使用过程(下)
Redis命令性能优化及事务使用过程(下)
536 0
Redis命令性能优化及事务使用过程(下)
|
存储 移动开发 NoSQL
Redis命令性能优化及事务使用过程(上)
Redis命令性能优化及事务使用过程(上)
219 0
Redis命令性能优化及事务使用过程(上)
|
NoSQL Redis C++
Redis命令——事务
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。
1016 0
下一篇
无影云桌面