问题标签 [key-value]

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 投票
8 回答
350 浏览

c# - 尝试从键值对列表构建对象时,什么是好的设计?

因此,如果我有一种解析文本文件并返回键值对列表 列表 方法,并且想从返回的 kvps 中创建对象(每个 kvps 列表代表一个不同的对象),那么最好的方法是什么?

想到的第一个方法非常简单,只需保留一个关键字列表:

并检查我得到的键是否有我想要的常量,上面定义。这是我正在做的项目的一个相当核心的部分,所以我想把它做好;有没有人有任何更强有力的建议(并不是说上述方法本质上是不健全的——我只是在四处打听)?

编辑:

已要求提供更多详细信息。我在业余时间做一个小游戏,我正在用配置文件构建游戏世界。有四个 - 一个定义所有生物,另一个定义所有区域(及其在地图中的位置),另一个定义所有对象,最后一个定义各种配置选项和不适合其他地方的东西。对于前三个配置文件,我将根据文件的内容创建对象 - 它会包含大量文本,因此会有很多字符串,比如名称、复数、前缀等。配置值都是这样的:

其中“-”行表示一个新的部分/对象。

0 投票
5 回答
23790 浏览

c# - .NET 中最简单的键/值对文件解析

我的项目需要一个文件,我将在其中存储用户应该能够读取和修改的键/值对数据。我希望程序只期望密钥在那里,并且我想尽快从文件中解析它们。

我可以将它们存储在 XML 中,但是 XML 太复杂了,它需要遍历节点和子节点等等,我想要的只是一些获取文件并生成键值对的类。我想要尽可能少的错误处理,并且我希望用尽可能少的代码来完成它。

我可以自己编写一个这样的类,但我宁愿学习它是如何在框架中完成的,也不愿两次发明轮子。.NET(3.5)中是否有一些内置的魔术类能够做到这一点?

0 投票
4 回答
2215 浏览

java - Scalaris:P2P 键值数据库——请发表您的意见

你为什么不使用Scalaris

0 投票
3 回答
541 浏览

java - 在键值存储中处理集合(列表或集合)的最佳方法是什么?

我想知道当您的存储类似于 memcached 时,从一个非常大的列表中添加/删除项目的有效方法是什么?也许有一些带有Java接口的分布式存储可以很好地处理这个问题?

有人可能会推荐兵马俑。我知道,但这并不是我所需要的。;)

0 投票
12 回答
5301 浏览

open-source - 是否有经过业务验证的云存储/Key=>Value 数据库?(开源)

我一直在寻找云计算/存储解决方案(灵感来自 Google Bigtable)。但我找不到一个易于使用、业务就绪的解决方案。

我正在搜索一个简单的、容错的、分布式的 Key=>Value DB,比如来自 Amazon 的 SimpleDB。

我见过这样的事情:

  1. CouchDB 项目:简单的分布式容错数据库。但它只理解 JSON。没有 XML 连接器等。
  2. Eucalyptus:不错的 Amazon EC2 接口。开放标准和 XML。但是分布式更少,容错性更差?还有很多 XEN/VMWare 问题的未解决问题。
  3. Cloudstore / Kosmosfs:很好的分布式、容错 fs。但是很难配置。有没有java连接器?
  4. Apache Hadoop:很好的系统,比存储数据的能力要强得多。使用自己的 Hadoop 分布式文件系统,并已在 2000 个节点的集群上进行测试。
  5. * Amazon SimpleDB:找不到开源替代品!对于海量数据来说,这是一个不错但昂贵的系统。你沉迷于亚马逊。

还有其他更好的解决方案吗?哪一个是最好的选择?哪一个提供最少的 SOF(单点故障)?

0 投票
2 回答
1908 浏览

database - 如果要存储的数据多于集群中的 RAM,那么像 Hazelcast 和 Scalris 这样的分布式内存云数据库会发生什么情况?

像这样的分布式内存云数据库正在发生什么

  1. 榛树
  2. 斯卡拉里斯

如果集群中存储的数据多于 RAM?

他们要交换吗?如果交换空间已满怎么办?我在两个数据库中都看不到灾难恢复策略!如果内存已满,可能所有数据都会丢失?

是否可以将内容写入硬盘以解决内存问题?是否有其他数据库提供与 Hazelcast 或 Scalaris 相同的功能,具有备份功能/硬盘存储/灾难恢复?

0 投票
4 回答
803 浏览

database - 基于键值的数据库,有人可以向我解释如何实际使用它们吗?

似乎对基于键/值的数据库有很大的推动作用,我相信 memcache 就是这样。

该值通常是某种可以保存更有意义数据的集合或 xml 文件吗?

如果是,反序列化数据通常比在返回基于行的结果集的表上执行传统的 JOINS 和选择更快吗?

0 投票
8 回答
337919 浏览

java - 实现 Map 并保持插入顺序的 Java 类?

我正在寻找一个具有键值关联但不使用散列的java类。这是我目前正在做的事情:

  1. 将值添加到Hashtable.
  2. 获取Hashtable.entrySet().
  3. 遍历所有值并:
    1. Map.Entry为迭代器获取一个。
    2. Module根据该值创建一个类型的对象(自定义类)。
    3. 将类添加到 JPanel。
  4. 显示面板。

这样做的问题是我无法控制取回值的顺序,因此我无法以给定的顺序显示值(没有对顺序进行硬编码)。

我会为此使用ArrayListor Vector,但稍后在代码中我需要获取Module给定 Key 的对象,而我无法使用ArrayListor来做到这一点Vector

有谁知道可以做到这一点的免费/开源 Java 类,或者Hashtable根据添加时间从 a 中获取值的方法?

谢谢!

0 投票
4 回答
3952 浏览

performance - GDBM 的替代品或继任者

我们有一个GDBM键值数据库作为负载平衡的面向 Web 的应用程序的后端,该应用程序是用 C++ 实现的。应用程序提供的数据变得非常庞大,因此我们的管理员已将 GDBM 文件从“本地”存储(在网络服务器上,或非常靠近)移动到大型、共享、远程、NFS 挂载的文件系统。

这影响了性能。我们的性能测试(在测试环境中)显示页面加载时间从数百毫秒(对于本地磁盘)跳跃到几秒(通过 NFS、本地网络),有时甚至高达 30 秒。我相信问题的很大一部分是应用程序从 GDBM 文件中进行了大量随机读取,并且这些读取比 NFS 慢,这在生产中会更糟(前端和后端甚至它们之间的网络硬件更多)并且随着我们的数据库变得更大。

虽然这不是一个关键应用程序,但我想提高性能,并提供一些可用资源,包括应用程序开发人员时间和 Unix 管理员。我的主要限制是时间只有几周的资源。

在我看来,我的选择是:

  1. 通过调整参数提高 NFS 性能。我的直觉是我们不会从中得到太多,但我以前错了,我对 NFS 调优并不是很了解。

  2. 移动到不同的键值对数据库,例如memcachedbTokyo Cabinet

  3. 用其他一些协议替换 NFS(iSCSI 已经提到,但我不熟悉)。

我应该如何解决这个问题?

0 投票
4 回答
6625 浏览

c# - Windows 的键值数据库?

除了 MongoDB 和 Memcached,还有哪些键值对存储在 Windows 上运行?我见过的大多数似乎只能在 Linux 上运行(Hypertable、Redis、Lightcloud)。

相关链接:
是否有经过业务验证的云存储/Key=>Value 数据库?(开源)
http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/