使用基于文档的NoSQL选项会让您在KV商店购买什么,反之亦然?
一个key-value存储提供了最简单的数据模型和正是顾名思义:它是存储由键索引值的存储系统.你受限于键查询,值是不透明的,商店不知道任何关于他们.这允许非常快速的读写操作(简单的磁盘访问),我将此模型视为一种非易失性缓存(即,如果需要通过密钥快速访问长期数据,则非常适合).
甲面向文档的数据库延伸先前模型和值被存储在一结构化的格式(文件,因此得名),该数据库可以理解.例如,文档可以是博客文章,评论和标签以非规范化方式存储.由于数据是透明的,因此商店可以执行更多工作(例如索引文档的字段),并且您不仅限于按键查询.正如我所暗示的,这样的数据库允许通过单个查询获取整个页面的数据,并且非常适合面向内容的应用程序(这就是像Facebook或亚马逊这样的大型网站喜欢它们的原因).
其他类型的NoSQL数据库包括面向列的存储,图形数据库甚至对象数据库.但这超出了这个问题.
将文档数据库与键值存储进行比较
NoSQL景观分析
关于NoSQL数据库的思考(分类和用例)
好吧,我在过去一个月左右一直在调查NoSQL.我认为它通常可以说是类似的东西
KV商店不知道实际为密钥存储的价值内容
基于文档允许您在值内容中定义二级索引,因为数据库知道文档结构(例如博客文章的标签).
NoSQL解决方案每个都有特定的功能,应该加以考虑,例如
KV商店中的特殊数据类型(例如,使用redis中的左/右pop/push设置)
像riak所说的那样容易扩展/缩小集群(我还没试过......)
可插拔数据存储,如Voldemort
内置Web配置和Web应用程序支持,如CouchDB/couchapp