标签: key-value-store

使用NoSQL数据存储时遇到了哪些可伸缩性问题?

NoSQL指的是打破关系数据库和ACID保证历史的非关系数据存储.流行的开源NoSQL数据存储包括:

  • Cassandra(表格,用Java编写,由Cisco,WebEx,Digg,Facebook,IBM,Mahalo,Rackspace,Reddit和Twitter使用)
  • CouchDB(文档,用Erlang编写,BBC和Engine Yard使用)
  • Dynomite(键值,用Erlang编写,由Powerset使用)
  • HBase(键值,用Java编写,Bing使用)
  • Hypertable(表格,用C++编写,百度使用)
  • Kai(键值,用Erlang编写)
  • MemcacheDB(键值,用C编写,Reddit使用)
  • MongoDB(文档,用C++编写,由Electronic Arts,Github,NY Times和Sourceforge使用)
  • Neo4j(图形,用Java编写,一些瑞典大学使用)
  • Project Voldemort(键值,用Java编写,LinkedIn使用)
  • Redis(键值,用C语言编写,Craigslist,Engine Yard和Github使用)
  • Riak(键值,用Erlang编写,Comcast和Mochi Media使用)
  • Ringo(键值,用Erlang编写,诺基亚使用)
  • Scalaris(键值,用Erlang编写,OnScale使用)
  • Terrastore(文档,用Java编写)
  • ThruDB(文档,用C++编写,由JunkDepot.com使用)
  • 东京内阁/东京暴君(键值,用C语言写的,由Mixi.jp(日本社交网站)使用)

我想知道您的具体问题 - SO读者 - 使用数据存储解决了您使用的NoSQL数据存储.

问题:

  • 您使用NoSQL数据存储解决了哪些可扩展性问题?
  • 您使用了什么NoSQL数据存储?
  • 在切换到NoSQL数据存储之前,您使用了什么数据库?

我正在寻找第一手经验,所以除非你有这个经验,否则请不要回答.

database nosql graph-databases key-value-store distributed-database

189
推荐指数
6
解决办法
2万
查看次数

用于Node.js的轻量级Javascript数据库

任何人都知道一个轻量级但持久的数据库,用Javascript编写,可以与Node.js一起使用.

我不想要像Mongo或Couch这样的(伟大的)解决方案的"重量".一个简单的内存JS数据库,能够作为文件持久存储到磁盘就足够了.我只会用它来存储少量数据.

要求:

  • 可以使用node.js服务器应用程序运行
  • 可以将整个数据库保存到磁盘并在发生故障后恢复
  • 不需要原子写入或事务支持
  • 快速查询和排序会很好
  • 只需要支持小数据量,总共高达1MB

到目前为止,我遇到了TAFFY db,但它似乎并没有在Node.js中使用.有人看到我在那里寻找的东西吗?

谢谢

javascript database key-value-store

125
推荐指数
9
解决办法
9万
查看次数

Redis键中冒号的用途是什么?

我正在学习如何将Redis用于我的项目.我没有理解的一件事是在键的名称中使用的冒号究竟是什么.

我看过这样的关键名称:

users:bob
color:blue
item:bag
Run Code Online (Sandbox Code Playgroud)

冒号是否将键分成几类并更快地找到键?如果是这样,在命名键时可以使用多个冒号将它们分解为子类别吗?最后他们是否与在Redis服务器中定义不同的数据库有关?

我已阅读文档,并就此事进行了大量谷歌搜索,但奇怪的是我找不到任何讨论此事的内容.

colon redis key-value-store

69
推荐指数
2
解决办法
2万
查看次数

airospike与其他键值nosql数据库有何不同?

Aerospike是一种键值,内存中,可操作的NoSQL数据库,具有ACID属性,支持复杂对象并且易于扩展.但我已经使用了绝对相同的东西.

Redis也是一个键值,内存(但持久到磁盘)NoSQL数据库.它还支持不同的复杂对象.但与Aerospike相比,Redis已经使用了很长时间,已经拥有一个活跃的社区,并且在其中开发了许多项目.

那么aerospike和其他no-sql键值数据库(例如redis)之间的区别是什么.是否有一个特别的地方更适合空中飞行.

PS我正在寻找那些在现实世界中至少使用过这些dbs(最好是两者)并且拥有现实生活经验(不是来自官方网站的复制贴纸)的人的答案.

redis key-value-store aerospike

49
推荐指数
5
解决办法
3万
查看次数

无模式数据库系统的吸引力是什么?

我听过很多关于无架构(通常是分布式)数据库系统的讨论,比如MongoDB,CouchDB,SimpleDB等......

虽然我可以理解它们可能在某些方面很有价值,但在我的大多数应用程序中,我都试图持久化具有特定类型字段的对象,而我只是在关系模型中自动思考.我一直在考虑具有唯一整数id的行,null/not null字段,SQL数据类型和用于查找集的select查询.

虽然我被这些新系统的分布式特性和简单的JSON/RESTful接口所吸引,但我不明白松散类型的键/值哈希将如何帮助我进行开发.为什么松散类型的无架构系统能够保持干净的数据集?例如,我怎样才能找到日期介于x和y之间的所有项目?是否有任何加入的概念?

我知道很多系统都有自己的差异和优势,但我想知道范式的差异.我想这是一个开放式的问题,但也许社区的答案以及他们亲眼看到这些系统优势的方式将有助于启发我和其他人关于何时我想要使用这些(当然更髋关节)系统而不是传统的RDBMS.

database document-oriented-db schemaless nosql key-value-store

39
推荐指数
3
解决办法
2万
查看次数

Node.js中速度最快,非基于内存的多进程键值存储

Node.js支持多个进程的最快的非内存键值存储是什么?

我需要存储简单的键值字符串/字符串对(不是文档或JSON,只是字符串).
以下是一些示例(将有数百万个):

  • 12345678 - abcdefghijklmnopabcdefghijklmnop
  • 86358098 - ahijklmnopbcdefgahijklmnopbcdefg
  • abcdefghijklmnopabcdefghijklmnop - 12345678
  • ahijklmnopbcdefgahijklmnopbcdefg - 86358098

我试过了:

  • Redis:它真的很快,可以完成我需要的一切,但是占用的内存太多了.
  • LevelDB:它在RAM上速度快且不太重,但只有单一进程.

LevelDB的解决方法是多级的,它通过HTTP公开单个LevelDB进程.
但那当然需要付出代价; 我需要快速的东西.

是否有任何键值存储:

  • 支持Node.js或具有绑定;
  • 存储字符串/字符串对;
  • 支持多个流程;
  • 并不完全存在于记忆中;
  • 很快?

我只关心阅读.快速的多进程读取是必要的,但不是写入.
我对LevelDB的当前速度感到满意,只是因为它是单进程的事实.


额外细节:

  • 我说的是大约5000万个键/值对,键和值在8到500个字符之间.
  • 代码将在常规Linux服务器上运行.
  • 内存使用量应限制在几千兆字节(4GB很好,8GB是可以接受的)
  • 阅读不仅仅是写作; 实际上,我可以不写作.
  • 速度比任何事情都重要(考虑到内存和多进程约束).

key-value redis key-value-store node.js leveldb

28
推荐指数
4
解决办法
2万
查看次数

在redis中存储对象属性

假设我有一个对象(User),它包含一些属性(ID,Name,Surename,Age).哪个方法最好将此对象存储在redis中?

  • 将每个属性值存储在专用键中,例如user:{id}:id,user:{id}:name,user:{id}:surename,user:{id}:age
  • 将整个User对象作为JSON字符串存储在一个键中,例如user:{id}:json(键的值将是这样的:{"ID":123,"Name":"Johny","Surename": "Bravo","年龄":22})

json redis key-value-store

24
推荐指数
1
解决办法
1万
查看次数

Postgres Hstore vs. Redis - 性能明智

读到了 Postgres中的HStores,也是Redis提供的东西.

我们的应用程序是用NodeJS编写的.两个问题:

  • 性能方面,Postgres HStore与Redis相当吗?

  • 对于会话存储,你会推荐什么 - Redis,或Postgres与其他类型的数据类型(如HStore,或者甚至是通常的关系表)?一个选项与另一个选项有多糟糕?

另一个限制是,我们需要使用已经在PostgreSQL中的数据并将其与活动会话(我们不确定此时存储在哪里,如果在Redis或PostgreSQL中)相结合.

根据我们已经阅读的内容,我们已经指出使用Redis作为会话管理器,但由于PostgreSQL约束,我们不确定如何将两者结合起来以及可能出现的性能问题.

谢谢!

postgresql performance redis key-value-store node.js

24
推荐指数
2
解决办法
2万
查看次数

带有TTL的Redis多功能设备

在redis中有一个SETEX命令允许我设置一个到期的密钥,这个命令的多集版本是否也有一个TTL?

两者MSETMSETNX命令都没有这样的选项.

ttl redis key-value-store

21
推荐指数
2
解决办法
6252
查看次数

Riak对Redis Key-Value商店的优势是什么?

我遇到过Riak在大公司被用作Key-Value商店.想知道像Redis这样受欢迎的Key-Value商店有哪些与众不同的特色?

key-value-store

19
推荐指数
1
解决办法
5613
查看次数