Logging 用于日志记录的快速数据存储
我目前正在写一份调查问卷,收集并存储来自不同用户的大量数据,我正在寻找一种有效存储结果的方法。我有以下要求:Logging 用于日志记录的快速数据存储,logging,nosql,node.js,Logging,Nosql,Node.js,我目前正在写一份调查问卷,收集并存储来自不同用户的大量数据,我正在寻找一种有效存储结果的方法。我有以下要求: 写得真快 持久的 可从node.js使用 小开销 在存储数据之前未授权读取(为了性能起见,我只需要写) 每个用户都可以发布几个结果,我需要在以后的某个时间点按用户id查询这些结果。这些请求将由并行运行的不同node.js进程处理。最后,数据可能如下所示: user1: result1 result2 result3 user2: result1 user3: re
- 写得真快
- 持久的
- 可从node.js使用
- 小开销
- 在存储数据之前未授权读取(为了性能起见,我只需要写)
发布
几个结果,我需要在以后的某个时间点按用户id查询这些结果。这些请求将由并行运行的不同node.js进程处理。最后,数据可能如下所示:
user1:
result1
result2
result3
user2:
result1
user3:
result1
result2
基本上我需要能够:
- 获取用户列表
- 查询给定用户的结果
编辑2:每个结果都适合一条ASCII行(数据中没有
\n
),否则数据应该被视为没有特定结构的字符串。像redis这样的键值对db会帮助您。它可以使用node.js,如果用户使用userid作为密钥,则可以使用userid查询用户
但更重要的是。。您需要性能还是需要扩展?:)
--Sai我感到惊讶的是,没有人不知道像Couchdb这样只有附加的dbms 由于写入只会到达数据库文件的末尾,因此不仅速度非常快,而且非常健壮。 . 查询它也不是问题,因为您有视图(用js编写)。在任何语言中与Couchdb对话都非常简单,就像使用REST/http一样 在我做的一些简单的写工作台下,我通过插入多个服务器,成功地利用了100%的10个内核,我认为这是非常强大的 我不会使用东京内阁,因为它的发展已经正式停止,而倾向于京都内阁
这是我的2个要素不确定为什么这必须是NoSQL。。。考虑使用SQLite代替文件。它非常快速、耐用、易于查询(SQL)。它非常适合node,因为node是单线程的,SQLite是进程内数据库
这里有一个从节点访问SQLite的API:请看一看。HTTP/JSON API,Lucene支持,完全分布式。我在里面存储了数百个TiB的数据。它甚至是默认的持久性,一个用于您正在/正在寻找做的事情的常用工具。我真的很喜欢redis,但它不适合在这里使用,这是一种过度使用(我不需要任何数据结构)。我需要性能(书面形式)和可伸缩性。我刚才给了redis一个KV db的例子。。但你可以选择任何千伏分贝。甚至伯克利DB或东京内阁。你需要为它做计划。像redis这样的节点和DB提供了最佳性能和可感知的可伸缩性…“any kv DB”并不是我想要的答案…架构图可能:)。。您要查找的数据访问模式指向KV DB类型。我不能给你一个明确的数据库并强迫你使用它,因为你需要根据你的使用模式对它们进行基准测试。数据库是复杂的实体。对不起,如果我不能给你一分贝,并要求你使用它。什么是安全级别,你正在寻找?在内存中写入数据的数据库应该像Memcached一样快速。但在单服务器模式下使用它会导致安全灾难。如果您目前不考虑安全性,那么在JS:)中使用内存内哈希将获得最高的写入速度,那么您决定使用哪个数据存储?您能提供一些关于为什么选择那个特定DBMS的见解吗?