我正在寻找 NoSQL 以获取大量数据。我们目前正在 MySQL 中存储网页文本的缓存版本,但似乎数据库会很快变得庞大。
我的要求是:
我现在在看:MongoDB、Redis、Raik 和 Cassandra。
哪个最符合我的要求?
我有一个非常大且非常稀疏的矩阵,仅由 0 和 1 组成。然后我基本上处理(行列)对。我每行/列最多有 10k 对。
我的需求如下:
并行插入(行-列)对
快速检索整行或整列
快速查询(行列)对的存在
如果可能的话,一个 Ruby 客户端
是否有适用于此类约束的现有数据库?
如果没有,什么能让我获得最佳性能:
row(indexed) | column(indexed) (但索引必须不断刷新)
row => columns ordered list
column => rows ordered list
(但将元素并行插入到列表中)
谢谢你的帮助!
我在视频服务器上工作,我想使用数据库来保存视频文件。由于我只需要存储带有元数据的简单视频文件,我尝试在 Java 中使用 MongoDB,通过其GridFS机制来存储视频文件及其元数据。
但是,我需要两个主要功能,而我无法使用 MongoDB 进行管理:
我尝试编写简单的代码来做到这一点,但失败了。似乎 MongoDB 不允许对二进制文件进行多线程访问(即使一个线程正在执行所有写入),我也找不到添加到二进制文件的方法 - Java GridFS API 只提供来自已经现有的 GridFSDBFile,我无法获得一个 OutputStream 来写入它。
谢谢,
铝
我们想在 Azure 中实现缓存有两个主要原因:
以下是我们计划缓存的数据的特征:
出于这个特定目的,表存储似乎比 Blob 存储更好(我们只是为图像、CSS 和 JavaScript 实现了 Blob 存储)并且Windows Azure 缓存似乎比 Windows Azure 共享缓存更好(也许几乎总是更好,共享缓存主要是遗留的功能在这一点)。
两者的编程 API 看起来都很简单。与我们为云站点支付的费用相比,每个站点的成本似乎可以忽略不计。
到目前为止,由于我们认为 Azure 缓存的优缺点,我们倾向于使用表存储。作为 .Net 老手,我们对内存缓存比 NoSql 风格的解决方案更熟悉:
Windows Azure 缓存的问题:
Windows Azure 缓存的优势
我有一个动态问答的当前关系模型。我正在尝试查看是否可以将架构转换为 MongoDB 以提高性能和灵活性。
我们基本上有一系列问题和问题类型。这些问题被放在一个问题集中。
问题按特定顺序提出,但对于某些问题,根据答案,下一个问题可能会有所不同。
例如,如果 Q1=YES 那么问问题 Q9 否则问问题 Q2
关于如何在没有我目前使用的各种关系 tavles 的情况下设计这种模式的任何想法?
好吧,因为我没有 10 次重复,所以我无法发布图片,但我会尝试用文字解释。
我有一个带有 4 个存储桶的 7 节点 Couchbase(社区)集群。最近,我收到了其中一个桶的元数据开销警告的垃圾邮件(不断)。警告弹出,如下所示:
元数据开销警告。分配给节点“xxx”上的桶 XXXX 的 RAM 的 62% 以上被键和元数据占用。
而且我读到这通常表明桶需要更多的内存。但我不认为那是我的问题。我猜我只是有很多元数据。当我查看Data Buckets选项卡时,这个 Bucket 有RAM/Quota Usage 64GB/75GB。所以对我来说,看起来大约有 11GB(75-64GB)可用。

如果我查看 Bucket Analytics VBUCKET RESOURCES指标,我会发现RAM中有59GB 用户数据,RAM 中有46GB 元数据。所以据我所知,在一个总共有 75GB 的存储桶上应该有 105GB 的 RAM!?!
但这对我来说并没有那么明显,这里有一些我不明白的东西。是的,75GB 中的 46GB 大约是 62%。但是,应该在 RAM 中的 59GB 用户数据呢?

编辑:典型的文档可能如下所示:
ID=1:CAESEA---rldZ5PhdV4msSdEchI
CONTENT=z2TjZEzkZ84=
Run Code Online (Sandbox Code Playgroud)
还有我的问题。我该怎么办?这种情况在我的情况下是否可以接受。如果是这样,我是否更改该警告的阈值(我不建议阅读该阈值,因为出于某种原因将警告设置为 50%)。
或者我分配更多的内存?如果是这样,如果已经有 11GB 可用空间,这对我有什么帮助?
请帮我澄清这些数字,并建议我是否需要采取任何行动。
您好,我有一个 mongodb find() 问题查询。我试图在同一个对象数组中找到具有两个特定 ID 的所有文档。
示例文档结构:
文档 1
{
gameId:394028,
people: [{
id: 5,
mapSide: 'left'
},{
id: 4,
mapSide: 'right'
},{
id: 1,
mapSide: 'right'
},{
id: 2,
mapSide: 'left'
}]
}
Run Code Online (Sandbox Code Playgroud)
文档 2
{
gameId:394028,
people: [{
id: 7,
mapSide: 'left'
},{
id: 9,
mapSide: 'right'
},{
id: 4,
mapSide: 'right'
},{
id: 1,
mapSide: 'left'
}]
}
Run Code Online (Sandbox Code Playgroud)
我将如何在同一个 people 数组中获取 id 为 5 和 4 的所有文档?我试过这个shell命令:
db.COLLECTION.find({"people.id":5, "people.id":4}); //should return doc 1
Run Code Online (Sandbox Code Playgroud)
但是我还没有得到任何结果。我也打算仅在他们有不同的地图方面时才找到 id - 我试过这个: …
我有以下类型的文件:
[{"msg":"hello", date: "some-date"},{"msg":"hi!", date: "some-date"}, ...
Run Code Online (Sandbox Code Playgroud)
我想按星期几计算文档数。例如,周一发送了 x 条消息,周二发送了 y 条消息,依此类推。
我已经将 date_histogram 与聚合一起使用,但它每天都会返回文档。它确实返回了我的一天,但是说“星期三,22”和“星期三,29”作为单独的聚合文档返回。
这与Elasticsearch有点相关- 按星期几和小时分组,但该问题没有答案,所以我重新发布。根据那里的建议,它要求我对 key_as_string 进行术语聚合,但我需要为每个对象添加 doc_count,而不仅仅是计算术语。我也不知道如何在嵌套聚合中使用 key_as_string。
这是我尝试过的:
"aggs" : {
"posts_over_days" : {
"date_histogram" : {
"field" : "created_time",
"interval": "day",
"format": "E"
}
}
Run Code Online (Sandbox Code Playgroud) nosql elasticsearch elasticsearch-plugin pyelasticsearch spring-data-elasticsearch
我目前正在深入探索 Cassandra,因为我愿意专注于它。我遇到了 Cassandra“写路径”,现在试图理解提交日志。据我了解,写入在写入提交日志时会被确认,然后写入 MemTable(内存表)。但是,如果提交日志被写入文件系统,那么作为 SSTables。有什么神奇之处可以使写入提交日志更快,或者如许多帖子和文档中所述
一旦写入提交日志和内存,就说写入成功,因此写入时的磁盘 I/O 非常少
为什么不写入 SSTable 和 MemTable 才算成功?
当我执行
sudo arangod或sudo service arangodb start在我的主目录中
我收到以下消息
[2844] FATAL cannot start server: database directory is locked
[2867] FATAL cannot start server: database directory is locked
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?