NoSQL数据模型详解(一)の键值模型

前端之家收集整理的这篇文章主要介绍了NoSQL数据模型详解(一)の键值模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

背景

上篇博客已经对数据模型整体有了一个介绍,下面针对Nosql中的四种数据模型进行详解的介绍。如下图:

概念

键值数据库是一张简单的hash table,主要用在所有数据库访问均通过主键来操作的情况下。讨论每一种Nosql数据库的特征时,都要了解其”一致性“、”事务性“、查询特性、数据结构和可扩展性

一致性

只有针对单个键的操作才局别“一致性”,因为这种操作只可能是“获取”、“设置”、或者“删除”。“乐观写入”功能其实也可以做出来,然而由于数据库无法侦测数值改动,所以其实现成本太高。Riak这种分布式键值数据库,用“最终一致性模型”实现一致性。因为树枝可能已经复制到其他节点,所以Riak有两种解决“更新冲突”的办法:一种是采纳新写入的数据而拒绝旧数据,另一种是将两者返回给客户端,令其解决冲突。

事务

不同类型的键值数据库产品,其“事务”规范不同。一般来说,无法保证写入操作的“一致性”。各种数据库实现“事务”的方式各异。Riak采用“仲裁”这一概念,在调用写入数据的API时,它使用W值与复制银子来实现“仲裁”。

查询功能

所有键值数据库都可以按关键字查询。他们的查询功能基本上仅限于此。

数据结构

键值数据库并不关心键值对里的值。它可以是二进制、文本、JSON、XML等。在使用Riak时,可在post请求中用Content—Type指定数据类型。

可扩展性

很多键值数据库都用“分片”技术扩展。采用此技术后,键的名字就决定了负责存储该键的节点。当集群中的节点数变多时,这种“分片”设定可提高效率。但是“分片”也会引发某些问题。像Riak,可以快弄告知“CAP定理”中的参数:N(存放键值对的副本节点数)、R(顺利完成读取操作所需的最小节点数)和W(顺利完成写入操作所需的最小节点数)

适用案例

存放会话信息、用户配置信息、购物车数据

不使用场合

数据间关系、含有多项操作的事务、查询数据、操作关键字的集合。
原文链接:https://www.f2er.com/nosql/203988.html

猜你在找的NoSQL相关文章