nosql – 什么是键/值存储数据库?

前端之家收集整理的这篇文章主要介绍了nosql – 什么是键/值存储数据库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在查看Nosql的维基百科页面,它列出了Key / Value商店数据库的几个变体,但是在这个上下文中我找不到关键/值存储意味着什么的任何细节.有人可以向我解释或链接一个解释吗?另外,我什么时候会使用这样的数据库
您熟悉键/值对的概念吗?假设您熟悉 Java或C#,它在语言中作为map / hash / datatable / KeyValuePair(最后一个是在C#的情况下)

它的工作方式在这个小样本图表中得到了证明:

Color        Red
Age          18
Size         Large
Name         Smith
Title        The Brown Dog

你有一个键(左)和一个值(右)…注意它可以是一个字符串,整数等.大多数KVP对象允许您在右侧存储任何对象,因为它只是一个值.

由于您将始终拥有要返回的特定对象的唯一键,因此您只需查询数据库中的唯一键,并从具有该对象的任何节点返回结果(这就是为什么它对分布式系统有用,因为涉及其他事情,例如轮询前n个节点以返回与其他节点匹配的值返回).

现在我上面的例子非常简单,所以这里是KVP稍微好一点的版本

user1923_color    Red
user1923_age      18
user3371_color    Blue
user4344_color    Brackish
user1923_height   6' 0"
user3371_age      34

因此,您可以看到简单的密钥生成是将“user”放入用户唯一的数字,下划线和对象.同样,这是一个简单的变体,但我认为我们开始明白,只要我们可以在左边定义部分并使其一致格式化,我们就可以得出值.

请注意,键值没有限制(确定,可能存在一些限制,例如纯文本)或者值属性(可能存在大小限制),但到目前为止,我还没有真正复杂的系统.让我们再尝试一下:

app_setting_width      450
user1923_color         Red
user1923_age           18
user3371_color         Blue
user4344_color         Brackish
user1923_height        6' 0"
user3371_age           34
error_msg_457          There is no file %1 here
error_message_1        There is no user with %1 name
1923_name              Jim
user1923_name          Jim Smith
user1923_lname         Smith
Application_Installed  true
log_errors             1
install_path           C:\Windows\System32\Restricted
ServerName             localhost
test                   test
test1                  test
test123                Brackish
devonly
wonderwoman
value                  key

你明白了……所有这些都存储在分布式节点上的一个巨大的“表”中(背后有数学),你只需要通过名称询问分布式系统所需的值.

至少,这是我对它如何运作的理解.我可能有一些错误,但这是基础知识.

强制性维基百科链接http://en.wikipedia.org/wiki/Associative_array

猜你在找的NoSQL相关文章