基本上,任何一种数据产品都可以用来做业务数据存储。
只是要确认项目的核心目标如在成本,难度,时间,未来数据量,检索需求,性能,可维护性上需要综合考虑。
架构选型依据:
1.按不同的业务场景,考察每种存储产品的匹配度。
2.选择的最低限度是必须满足业务1年内的功能需求。如满足使用者的:用户,运营的需求。
3.不追求最新技术,按团队成员对此方案可控,可维护为主。
4.不得有明显的无法解决的安全性,数据丢失等隐患。
Redis
1.读写性能要求极高
2.数据量不大
3.数据不需长期存储
案例:
高速缓存; 分布式session
ES
1.全文索引
2.复杂聚合搜索查询
3.可接受较高硬件成本
4.不支持事务,支持二级索引
案例:
京东10亿条订单中心复杂查询
滴滴客服、运营的多维度查询
携程,滴滴日志中心
MongoDB
1.表结构或数据模型经常改变
2.数据的逻辑结构不需要多表查询操作
3.数据量比较大
4.支持一定聚合查询
5.可接受占用空间较大(字段名占用空间以及预分配空间)
6稀疏数据
优点:
针对MongoDB的操作都使用JSON风格语法,客户端提交或接收的数据都使用JSON形式来展现,可快速制作产品原型。
体现的是面向对象和资源。
案例:
游戏中保存不同角色不同信息;
博客帖子和评论;
电商的商品;
Hbase
1.海量数据
2.查询条件简单
3.列与列间关联小
4.不支持事务,不支持二级索引
5.稀疏数据
案例:
搜索引擎建立的网页数据库;
注意:
NoSql数据库虽然解决了水平扩展问题,但是每个功能都太过单一,越来越多的公司使用新一代NewSQL数据库。