适合使用Tair的场景:
- 不能容忍数据丢失
- 数据量大,内存放不下的服务
不适合使用Cellar的场景:
- 使用复杂数据结构(map/set),map/set中元素很多(1000以上)
适合使用Redis的场景:
- 需要使用复杂数据结构(map, set),map/set中元素很多(1000以上)
- 延迟敏感服务
不适合Redis的场景:
- 数据量超过100GB(数据太多,全内存太浪费资源)
对于上述未提及的kv需求,通常Tair&Redis都可以支撑,具体方案选型,将考虑业务意愿以及基础存储组对业务的细化场景评估来决定。
对比项 | Tair | Redis | |
---|---|---|---|
访问API | 多语言支持 | Java, C/C++, Python, PHP, nodejs | Java,C/C++,Nodejs,Go,Python |
访问API | 数据结构支持 | HashMap, List,Set | Hash, List, Set, Sorted Set |
访问API | 数据自动过期 | 支持 | 支持 |
可靠性 | 数据可靠性 | 强,有持久存储,一般不会丢失数据 | 用户可选是否开启持久化 |
可靠性 | 多副本 | 支持(副本可提供就近读) | 支持(副本平时可读) |
可靠性 | 副本一致性 | 可根据业务需求配置强一致/弱一致 | 弱 |
可靠性 | 持久化 | 支持 | 支持 |
可靠性 | 多机房 | 支持(部署多集群,支持就近机房读取) | 支持(部署多集群,支持就近机房读取) |
可靠性 | 极限负载稳定性 | 支持过载保护,防雪崩 | 新版本有服务端限流 |
可扩展性 | 无损扩容 | 支持 | 支持 |
可扩展性 | 支持数据量 | 内存+硬盘引擎,数据容量可无限扩充 | 数据全内存,资源成本考量不宜超100GB |
性能 | 读写性能 | String,计数等类型高,复杂数据类型(map,set)较低 | 高 |
可运维性 | 系统监控 | 客户端调用信息上报cat,实时监控服务状况 | 客户端调用信息上报cat, 实时监控服务状况 |
网友评论