技术选型系列 - Tair&Redis对比

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: * Redis http://www.redis.net.cn/ http://doc.redisfans.com/* Tair http://code.
* Redis
    http://www.redis.net.cn/
    http://doc.redisfans.com/
* Tair
    http://code.taobao.org/p/tair/wiki/index/

适应场景

Redis

适用

  1. 需要使用复杂数据结构(map, set),map/set中元素很多(1000以上)
  2. 延迟敏感服务

不适用

  1. 数据量超过600GB(数据太多,全内存太浪费资源)
  2. 需要多语言客户端支持

Tair

适用

  1. 不能容忍数据丢失
  2. 数据量大,内存放不下的服务

不适用

  1. 使用复杂数据结构(map/set),map/set中元素很多(1000以上)

详细对比

1.访问模式

具体参数 Redis Redis Cluster Tair
支持Value大小 理论上不超过1GB(建议不超过1MB) 理论上不超过1GB(建议不超过1MB) 256M(更大value还需要测试)
支持Value结构 byte[]/list/map/set byte[]/list/map/set (1)kv/map/list
(2)支持big_list(list无长度限制)
(3)支持创建schema,cmd query
支持的总数据量 1000+instance scale out,理论上总数据量无限制
适宜的读写比 存内存型,均适合 存内存型,均适合 支持多引擎,适宜各种比例的读写。读多写少(mdb+leveldb),读少写多(leveldb)。
数据是否可改写 Y Y Y
是否支持Scan/Range Query 不支持,并且不支持merge operations 支持scan;
支持range query
CAP CP 用户可配置,CP或AP
语言支持 主流语言 主流语言,目前java、ruby可用 php,restful,java,c/c++
数据自动过期 支持 支持 支持

2.访问性能

具体参数 Redis Redis Cluster Tair
点写latency 虚机上平均1~2ms 虚机上平均1~2ms 5~8ms(write through),1ms左右(write back)
点写吞吐率 一个instance 5w,单机器整体性能根据cpu来决定 一个instance 5w,单机器整体性能根据cpu来决定 受限网卡带宽瓶颈(100MB),单机纯内存8w~10w qps(key+value=1k)
批量写吞吐率 受限网卡带宽瓶颈 受限网卡带宽瓶颈 受限网卡带宽瓶颈(100MB),单机纯内存8w ~10w batch/s(batch=10keys,key+value=100,batch_size=1k)
读latency 虚机上平均1~2ms 虚机上平均1~2ms 同机房内存1ms,磁盘5-8ms(延迟不会随单机数据容量增加而增加)

3.可运维性

具体参数 Redis Redis Cluster Tair
可扩展性(自动扩容、在线扩容) 支持水平扩展 在不停读和写的服务下自动扩容
可用性(是否有单点、数据迁移/单机出错时是否会有服务中断、过载保护、慢查询保护) 使用keepalived或者官方哨兵来保持高可用 无单点 (1)无单点
(2)不中断服务
(3)有过载保护
(4)无慢查询保护,但有慢查询递归树监控
可靠性(如何防止数据丢失,包括机器断电、硬盘损毁等情形下) 0~N个数据slave备份(实际使用情况基本是0个备份) 0~N个数据slave备份(实际使用情况基本是0个备份) (1)多机数据冗余
(2)断电数据不丢失,重放redo log
(3)数据完整性crc校验(防止磁盘损坏)
数据可靠性 用户可选是否开启持久化 用户可选是否开启持久化 强,有持久存储,一般不会丢失数据
多副本 支持(副本平时可读) 支持(副本平时可读) 支持(副本平时不提供读写)
副本一致性 可根据业务需求配置强一致/弱一致
持久化 支持。持久化的数据是用于重启后的数据恢复。Redis是一个内存数据库,无论是RDB还是AOF,都只是其保证数据恢复的措施。 支持。持久化的数据是用于重启后的数据恢复。Redis是一个内存数据库,无论是RDB还是AOF,都只是其保证数据恢复的措施。 支持
对业务混合部署的支持(性能隔离) 进程级隔离(特殊处理可以到机器间隔离) 进程级隔离(特殊处理可以到机器间隔离) 硬软隔离:
(1)支持不同group的业务混步
(2)
支持同一个group业务混步(通过名字空间隔离),支持网络和内存的隔离。
对访问权限的可控制性 web操作管理员授权.api操作支持鉴权和非鉴权两种模式 web操作管理员授权.api操作支持鉴权和非鉴权两种模式 机器粒度的白名单管理
实现语言、代码量 JAVA,java客户端14000行、管理中心22000行 JAVA,java客户端14000行、管理中心22000行 核心代码c++,10w行左右

欢迎关注 高广超的简书博客 与 收藏文章 !
欢迎关注 头条号:互联网技术栈

个人介绍:

高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。

本文首发在 高广超的简书博客 转载请注明!

img_31e2e3075b097cabfd9b3643cd9abaa5.png
简书博客
img_3b1610566b09db3358ca5dcb3e015a52.png
头条号
相关实践学习
基于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
目录
相关文章
|
5月前
|
存储 NoSQL Redis
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
|
8月前
|
存储 Dragonfly NoSQL
Tair 对 Redis 引擎架构之争的看法
本文详细讲解了阿里云自研数据库Tair的发展以及介绍。
73670 1
|
NoSQL Redis 数据库
Tair for Redis数据闪回:任意时间点数据恢复
Redis的数据闪回功能提供了更精细化的数据恢复能力,支持恢复实例指定Key的数据到指定时间点。
|
存储 缓存 NoSQL
课时1:Redis(Tair) 产品介绍
课时1:Redis(Tair) 产品介绍
|
弹性计算 NoSQL 算法
阿里云Redis与Tair压力测评
无意中发现阿里云开发社区的训练营活动,其中有一个7天玩转Redis、tair训练营计划,里面可以免费领取三个月的试用礼包,因为是参营任务,不领取都不行的那种,领取之后放着也是放着,不如跑跑数据看看Redis和Tair的性能有什么区别,简单的压力测试下,本次测试并不精确,也不具有太多参考意义,真的就是为了测试而测试。
288 0
|
存储 Dragonfly 监控
Tair 对 Redis 引擎架构之争的看法
云原生内存数据库 Tair 是阿里云自研数据库,兼容 Redis 的同时提供更多数据结构和企业级能力,包括全球多活、任意时间点恢复和透明加密等。
Tair 对 Redis 引擎架构之争的看法
|
存储 NoSQL Redis
《阿里云Redis企业版Tair持久存储系列技术解读》电子版地址
阿里云Redis企业版Tair持久存储系列技术解读
155 0
《阿里云Redis企业版Tair持久存储系列技术解读》电子版地址
|
16天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
158 85
|
3月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
85 6
|
13天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。