nosql数据库有哪些:按类型快速选型

nosql数据库有哪些,主流分为文档型、键值型、列族型、图数据库四类,文档型适合存储结构灵活的业务数据,键值型主打高并发读写缓存场景,列族型适配海量时序、日志数据,图数据库专门处理节点关联查询;你做后台管理、用户资料存储优先选文档型,做商品缓存、会话存储优先选键值型,运维日志、监控指标用列族型,社交关系、知识图谱选图数据库,这套选型逻辑不适用于强事务、多表关联复杂查询的金融核心记账场景,这类场景更偏向关系型数据库。

nosql数据库:文档型

文档型nosql以JSON、BSON格式存储单条文档,单文档内部字段可以自由增减,不需要提前定义固定表结构,查询时可以直接读取整条文档,适合内容管理、用户画像、订单附属信息这类字段经常变动的业务。MongoDB是该类别里使用较多的产品,支持二级索引、分片集群,能够横向扩容承载大量数据;CouchDB支持多版本文档和离线同步,移动端、本地离线协同场景会用到它。

文档型数据库的查询能力介于键值库和关系库之间,单文档内查询效率较高,跨文档的联表查询性能会明显下降,设计数据模型时尽量把关联数据内嵌到同一个文档中。

nosql数据库:键值型

键值型nosql依靠唯一key读取value,value可以是字符串、二进制、序列化对象,读写链路很短,吞吐能力强,延迟偏低。Redis是典型代表,除基础键值读写外,自带哈希、集合、有序集合等多种数据结构,还支持持久化,大量项目用来做分布式缓存、分布式锁、限流计数;DynamoDB为云原生设计,自动分片,适合云上无运维的高并发业务。

只支持key精准查找,大范围过滤查询成本很高,不要用它做模糊检索、多条件筛选的主存储。

nosql数据库:列族型

列族型nosql把数据按行、列族组织,同一行下不同列族可以分开存储,读取时只加载需要的列,适合海量时序数据、日志、埋点数据的写入。Cassandra支持多数据中心部署,写入吞吐稳定;HBase依托Hadoop生态,适合离线大数据平台里的海量明细存储。

它的查询大多依赖行键,没有通用的二级索引,业务建模阶段就要提前规划好查询维度,后期调整查询路径成本很高。

nosql数据库:图数据库

图nosql以节点、边、属性存储数据,擅长遍历节点之间的关联关系,多层关联查询相比其他nosql和关系库优势明显。Neo4j是社区使用广泛的图数据库,支持Cypher查询语言,适合社交好友、推荐链路、风控团伙识别;JanusGraph面向大规模分布式场景,可以对接不同存储后端,支撑更大体量的图数据。

类型代表产品核心优势典型业务
文档型MongoDB、CouchDB结构灵活,贴近JSON内容、用户资料
键值型Redis、DynamoDB读写快,延迟低缓存、会话、计数
列族型HBase、Cassandra海量写入,横向扩展日志、监控时序
图数据库Neo4j、JanusGraph关联遍历高效关系图谱、风控

选型优先匹配查询模式,而不是优先看知名度。

你在业务里同时存在多种查询需求时,可以组合使用,比如Redis做缓存加速,MongoDB做主业务存储,Neo4j单独处理关系分析,不要试图只用一款nosql承载全部业务逻辑。

nosql普遍弱化跨记录事务,多数只支持单行或单文档事务,跨多条记录的强一致性事务实现难度更高,业务设计时尽量避免强事务依赖。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于nosql数据库有哪些的文章欢迎访问:百科