问题标签 [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.

0 投票
2 回答
807 浏览

redis - Redis - 处理数据结构的更改

我一直在试验 Redis,我真的很喜欢它带来的可扩展性。但是,我想知道如何为已经投入生产的系统处理数据结构的更改。

例如,假设我正在收集有关用户的信息,并且使用 user_id 作为键,并将有关用户的其他数据转储为逗号分隔值。

现在,假设在大约 100,000 条记录之后,我意识到我需要查询email- 我现在如何拍摄现有数据的快照并为其创建新索引?

0 投票
4 回答
1465 浏览

ruby - 具有低内存要求和 Ruby 接口的数据库

对于内存很少的小型虚拟服务器,我需要一个内存要求低的数据库。目前我被 SQLite 和京都内阁或东京内阁困住了。数据库应该有一个 Ruby 接口。

理想情况下,我想避免键值存储,因为我有“复杂”的查询(比查找单个键更复杂)和元组作为键。另一方面,我不希望有一个固定的模式并避免 SQL 数据库的规划和迁移工作。数据库服务器也不是必需的,因为只有一个应用程序会使用数据库。

你有什么建议和号码给我吗?

0 投票
10 回答
11249 浏览

java - 用于 Java 的单文件、持久、排序键值存储(替代 Berkeley DB)

Berkeley DB (JE) 许可可能会成为交易杀手。我有一个面向一小部分客户的 Java 应用程序,但由于它是一个桌面应用程序,我的价格不能支持单个实例许可。

Berkeley DB 是否有推荐的 Java 替代品? 商业或其他(良好的键值存储实现可以变得不平凡,我更喜欢将维护推迟到其他地方)。我需要的不仅仅是一个哈希存储,因为我需要遍历后续的关键子集,而基本哈希存储将 O(m*n) 进行搜索,我希望该存储在台式机上约为 50-60GiB。您可以推荐将其后备存储保存在单个文件中的任何人的额外好处?

0 投票
6 回答
3011 浏览

nosql - 只提供服务的键值数据库读取速度非常快?

我们正在 Scala 中做一个项目,我需要一个键值数据库(如地图),它主要服务于读取操作并且速度非常快:

  • 没有任何奇异的查询支持或复杂的检索逻辑,只需给出键并获取值,就像地图一样。没有条件,没有连接,什么都没有。键 -> 值
  • 顺便说一句,值本身就是一些字符串列表或类似内容的映射。这意味着它有点冗长(如果重要的话)
  • 我们只用它来阅读。对于数据库的初始填充或一些非常罕见的更新,或者可能可以在数据库之外处理,没有写作期望......

我一直关注 MangoDB 和 memcachedDB,但 Mango 擅长查询(这对我没有任何价值),而 memcacheDB 完全是关于分发的(在我的项目中不是问题)。到目前为止,我正在考虑利用 RDBMS(例如 MySQL),但也许在 NoSQL 领域有更好的选择?

0 投票
3 回答
12941 浏览

json - 在redis中存储对象属性

假设我有一个对象(用户),它由一些属性(ID、姓名、Surename、年龄)组成。将这个对象存储在redis中哪种方式更好?

  • 将每个属性值存储在专用键中,例如 user:{id}:id, user:{id}:name, user:{id}:surename, user:{id}:age
  • 将整个 User 对象作为 JSON 字符串存储在一个键中,例如 user:{id}:json (键的值将类似于:{"ID": 123, "Name": "Johny", "Surename": “勇敢”,“年龄”:22})
0 投票
1 回答
1918 浏览

.net - .NET - 一种快速的轻量级持久键值存储

我正在寻找 .NET 的持久键值存储。要求是:

  • 存储用于由字符串标识并具有几个可选(命名)属性的对象,这些属性的值只是字节数组。对于 SQL 解决方案,我会将其建模为一个字符串 -> id 表和几个 id -> blob 表。
  • 预期的数据量是几兆字节(目前不太可能超过 10 Mb,但扩展到 100 Mb 将是一个不错的奖励)
  • 轻量级 - 最好是单一组件,绝对没有外部应用程序
  • 读取比写入更频繁,至少高出 100 倍。
  • 快速读/写访问——我期望内存存储和对数据更新的延迟写入;我可以定期自己生成异步写入,如果存储可以这样做,则可以加分。
  • 原子 I/O - 如果进程在写入过程中终止,数据库不应中断;否则数据不是关键的,即不需要额外的冗余。

目前我认为 SQLite 可以在这里工作;但是这似乎有点矫枉过正——我只需要键值存储,不需要完整的 SQL 支持。我也听说过 bdb 和 libdb-dotnet 绑定——它似乎更轻量级,但我不知道性能/一致性特征。

任何人都可以在这里推荐一些东西吗?欢迎提供其他参考资料(即,如果 .NET Framework 中有可以完成这项工作的东西,那就太好了),以及使用 SQLite 或 libdb-dotnet(或一般的 bdb)或本土解决方案的经验,如果它是无痛的.

0 投票
2 回答
198 浏览

ruby-on-rails - 在 Rails 同一个应用程序中使用不同的数据存储?

所以这或多或少是一个实现问题,这是我的情景,基本上我们有一个使用 MySQL 作为数据存储、用户帐户、事务等的应用程序,但我们想添加一个强大的图表功能,数据将是存储在 Redis 中,现在基本上我的问题是:

是否有可能,将另一个数据存储集成到已经依赖于另一个数据存储的应用程序的最佳实践是什么。我可以使用 Rack 生成报告吗?ETC...

我想把它变成一种公开的讨论,因为我认为随着我们看到越来越多的键/值存储提供的好处与 RDBMS 和 NoSQL 存储大不相同,对这样的解决方案的需求将会增加。它们都有自己的好处,但没有一种解决方案可以涵盖所有这些。

想法?

0 投票
0 回答
732 浏览

key-value-store - 使用 Java API 对京都橱柜进行范围查询

我对使用kyotocabinet键值存储感兴趣,并且我想最好使用批量接口(返回字节数组)来执行范围查询。我检查了kyotocabinetJava API,但找不到任何特定的方法来执行此操作。由于范围查询对于键值存储非常常见,我想知道是否有人有在kyotocabinet.

0 投票
1 回答
4629 浏览

android - android上持久键值存储的最佳机制是什么(具有大值)

我想在值是图像位图的 Android 设备上使用快速键值存储。存储应该由磁盘备份并提供一些缓存,从而最小化磁盘 IO。多线程访问是可取的,但不是必需的。

我查看了似乎满足要求的Java Berkeley DB 。还有其他性能更好的库吗?还是 Berkeley DB 在 Android 平台上表现良好?

我可以接受需要单个键值对驻留在内存中的解决方案,但存储完整的键值对集可能会超过设备内存的大小。

0 投票
1 回答
2575 浏览

algorithm - 关于领导人选举的一些想法

我正在尝试执行领导者选举。这些天我正在考虑使用键值存储来实现这一点,但我不太确定这个想法在可伸缩性和一致性问题上是否可靠。真正的部署将有数千个节点,并且选举应该在没有任何中央机构或像 zookeeper 这样的服务的情况下进行。

现在,我的问题是:

我可以使用键值存储(最好是像 riak 这样的 CA 可调参数)来执行领导者选举吗?使用 KV 存储进行领导人选举有哪些可能的优点/缺点?

谢谢!

编辑:我不再对欺负算法方法感兴趣。