问题标签 [key-value-store]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 与键值存储相比,基于文档的数据存储(例如 Mongo)如何实现?
我最近一直在阅读有关基于文档的数据库与键值存储的内容(这是一个很好的概述基于文档和基于键/值的数据库之间的区别? ),但我在以下方面找不到好的信息.
如果我们使用键(或附加索引)查询其中任何一个,则机制没有真正的区别 - 获取值。在查询非索引文档/字段时,我不清楚文档存储与键值存储有何不同。如果我要在键值存储之上实现文档存储,我会为查询中的适当值执行“表扫描”(检查所有键/值对) - 文档存储是否比这更多封面?以这种方式考虑文档数据存储是否合适?
这不是一个实际问题(如果我需要做一些有用的事情,我是否会在 BDB 上使用 Mongo),而不是一个旨在理解底层技术的问题。只有当它们适用于底层实现时,我才对特定系统的扩展方面感兴趣。
database - 有人能解释一下我们如何用 mysql 实现简单的键/值存储吗?
http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/:
Facebook 使用 MySQL,但主要用作键值持久存储,将连接和逻辑移动到 Web 服务器上,因为在那里更容易执行优化(在 Memcached 层的“另一端”)。
有人能解释一下我们如何用 mysql 实现简单的键/值存储吗?它只是一个以 bigint 作为主键 + 单列的表LONGTEXT
吗?
mysql - mysql键/值存储问题
我正在尝试使用 mysql 实现键/值存储
我有一个用户表,它有 2 列,一列用于全局 ID,一列用于序列化数据。
现在的问题是,每次用户数据发生任何变化时,我都必须从数据库中检索序列化数据,更改数据,然后重新序列化并将其放回数据库。即使对任何用户数据有非常小的更改,我也必须重复这些步骤(因为无法在数据库本身中更新该单元格)
基本上我正在研究人们在遇到这个问题时通常使用什么解决方案?
database - 简单的纬度/经度+整数数据库?
是否有一个快速、持久的数据库来存储纬度、经度和整数值以进行快速地理空间查找?
这个想法是我有很多不同的 ID,我想通过纬度/经度方块搜索给定位置的所有 ID。
我的第一个想法是创造性地使用 membase 或 redis 等键值存储。但是,我无法找到一种基于纬度和经度等属性进行搜索的方法,而不是创建设置大小的纬度/经度块并将所有 id 作为值(这不是很好)。
memcached - 基于值的 memcached 失效
是否可以memcahced
根据值使条目无效。
在我的应用程序中,我将用户分配到不同的组中,并将此映射存储在memcached
.
所以多个userIds
映射到一个groupID
。
当我删除特定组时,我想删除存储中所有具有已删除组memcache
值的条目。groupID
所以本质上我想删除具有特定值的条目。我该怎么做。
python - 对与列表中的项目匹配的字典值执行操作?
我有一个包含 46,000 个键:值对的字典,其中每个键都有一个 3 项列表作为值:
我有一个包含数百个值的列表:
如何遍历列表 L1 并为 L1 中的每个项目匹配 value[0] 与列表项目匹配的每个字典值?然后,我希望仅在列表项与字典中的 value[0] 匹配的键:值对上对字典的 value[1] 和 value[2] 执行其他操作。
在上面的示例中,L1 - 'A' 中的第一项将仅匹配key1: ['A', 'B', 'C']
.
我似乎无法找到一种方法来做到这一点?谢谢您的帮助!
javascript - 用于 Node.js 的轻量级 Javascript DB
任何人都知道可以与 Node.js 一起使用的用 Javascript 编写的轻量级但耐用的数据库。
我不想要像 Mongo 或 Couch 这样的(伟大的)解决方案的“重量”。一个简单的、内存中的 JS 数据库能够以文件的形式保存到磁盘就足够了。我只会用它来存储少量数据。
要求:
- 可以在 node.js 服务器应用程序的进程中运行
- 可以将整个数据库保存到磁盘并在发生故障后恢复
- 不需要原子写入或事务支持
- 快速查询和排序会很好
- 只需要支持小数据量,总共最大1MB
到目前为止,我遇到过 TAFFY db,但它似乎并没有针对在 Node.js 中的使用进行优化。有人看到我在外面找什么吗?
谢谢
python - 将表单字段存储为键值/单独的行
我在 Django 中有一个简单的表单,如下所示:
...以及存储它的模型如下所示:
提交表单时,如何将表单字段存储为键值对,然后在呈现页面时,如何使用键值初始化表单。我试过寻找这个的实现,但一直找不到。
有什么帮助吗?
谢谢。
database - Cassandra 是否适合需要频繁查询(读/写)的系统?
我正在开发一个需要很多用户在同一个“宇宙”中的 Web 应用程序,其中会发生很多频繁的查询:
- 频繁查找位于某个框区域(X1、X2、Y1 和 Y2 之间)的客户端
- 客户频繁更新位置
- 客户频繁的聊天消息
- 客户频繁更新状态
- 新老客户端频繁连接断开
我相信我的节点可以有足够的内存供所有当前在线用户在 RAM 中。这就是我最初考虑 Redis 的原因。但是,我决定 Redis 不适用于这里,因为:
- 它有一个单点故障(一个主服务器)
- 只有主服务器可以写入,如果一个有 40 个节点,那么 39 个从服务器将不得不让一个主服务器写入每个条目
Cassandra 似乎解决了这些问题。
但是,Cassandra 是否也适合我的频繁查询?
database - 用于物理测量的良好(noSQL?)数据库
我们正在构建一个最终将由数千个测量站组成的测量系统。每个站点将在其生命周期内保存大约 5 亿次测量值,其中包括 30 个标量值。这些将是浮点值。我们现在想知道如何在每个站点上保存这些数据,考虑到我们将在每个站点上构建一个 Web 应用程序,这样
- 我们希望在多个时间尺度上可视化数据(例如一周、一个月、一年的测量)
- 我们需要在数据上建立移动平均线(例如一个月的平均值以显示在一年图中)
- 数据库需要抗崩溃(断电)
- 我们只进行写入和读取,没有更新或删除数据
此外,我们还想要一台可以显示例如 1000 个测量站的数据的服务器。这将是 5000 亿次测量中约 50TB 的数据。要将数据从测量站传输到服务器,我认为某种类型的数据库级复制将是一种干净有效的方式。
现在我想知道对于这些目的,noSQL 解决方案是否可能比 mySQL 更好。特别是couchDB、Cassandra和Redis之类的键值存储对我来说很有吸引力。您认为哪一个最适合“测量时间序列”数据模型?碰撞安全和从测量站到主服务器的复制等其他优势呢?