问题标签 [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.
c# - 尝试从键值对列表构建对象时,什么是好的设计?
因此,如果我有一种解析文本文件并返回键值对列表 列表的 方法,并且想从返回的 kvps 中创建对象(每个 kvps 列表代表一个不同的对象),那么最好的方法是什么?
想到的第一个方法非常简单,只需保留一个关键字列表:
并检查我得到的键是否有我想要的常量,上面定义。这是我正在做的项目的一个相当核心的部分,所以我想把它做好;有没有人有任何更强有力的建议(并不是说上述方法本质上是不健全的——我只是在四处打听)?
编辑:
已要求提供更多详细信息。我在业余时间做一个小游戏,我正在用配置文件构建游戏世界。有四个 - 一个定义所有生物,另一个定义所有区域(及其在地图中的位置),另一个定义所有对象,最后一个定义各种配置选项和不适合其他地方的东西。对于前三个配置文件,我将根据文件的内容创建对象 - 它会包含大量文本,因此会有很多字符串,比如名称、复数、前缀等。配置值都是这样的:
其中“-”行表示一个新的部分/对象。
c# - .NET 中最简单的键/值对文件解析
我的项目需要一个文件,我将在其中存储用户应该能够读取和修改的键/值对数据。我希望程序只期望密钥在那里,并且我想尽快从文件中解析它们。
我可以将它们存储在 XML 中,但是 XML 太复杂了,它需要遍历节点和子节点等等,我想要的只是一些获取文件并生成键值对的类。我想要尽可能少的错误处理,并且我希望用尽可能少的代码来完成它。
我可以自己编写一个这样的类,但我宁愿学习它是如何在框架中完成的,也不愿两次发明轮子。.NET(3.5)中是否有一些内置的魔术类能够做到这一点?
java - 在键值存储中处理集合(列表或集合)的最佳方法是什么?
我想知道当您的存储类似于 memcached 时,从一个非常大的列表中添加/删除项目的有效方法是什么?也许有一些带有Java接口的分布式存储可以很好地处理这个问题?
有人可能会推荐兵马俑。我知道,但这并不是我所需要的。;)
open-source - 是否有经过业务验证的云存储/Key=>Value 数据库?(开源)
我一直在寻找云计算/存储解决方案(灵感来自 Google Bigtable)。但我找不到一个易于使用、业务就绪的解决方案。
我正在搜索一个简单的、容错的、分布式的 Key=>Value DB,比如来自 Amazon 的 SimpleDB。
我见过这样的事情:
- CouchDB 项目:简单的分布式容错数据库。但它只理解 JSON。没有 XML 连接器等。
- Eucalyptus:不错的 Amazon EC2 接口。开放标准和 XML。但是分布式更少,容错性更差?还有很多 XEN/VMWare 问题的未解决问题。
- Cloudstore / Kosmosfs:很好的分布式、容错 fs。但是很难配置。有没有java连接器?
- Apache Hadoop:很好的系统,比存储数据的能力要强得多。使用自己的 Hadoop 分布式文件系统,并已在 2000 个节点的集群上进行测试。
- * Amazon SimpleDB:找不到开源替代品!对于海量数据来说,这是一个不错但昂贵的系统。你沉迷于亚马逊。
还有其他更好的解决方案吗?哪一个是最好的选择?哪一个提供最少的 SOF(单点故障)?
database - 基于键值的数据库,有人可以向我解释如何实际使用它们吗?
似乎对基于键/值的数据库有很大的推动作用,我相信 memcache 就是这样。
该值通常是某种可以保存更有意义数据的集合或 xml 文件吗?
如果是,反序列化数据通常比在返回基于行的结果集的表上执行传统的 JOINS 和选择更快吗?
java - 实现 Map 并保持插入顺序的 Java 类?
我正在寻找一个具有键值关联但不使用散列的java类。这是我目前正在做的事情:
- 将值添加到
Hashtable
. - 获取
Hashtable.entrySet()
. - 遍历所有值并:
Map.Entry
为迭代器获取一个。Module
根据该值创建一个类型的对象(自定义类)。- 将类添加到 JPanel。
- 显示面板。
这样做的问题是我无法控制取回值的顺序,因此我无法以给定的顺序显示值(没有对顺序进行硬编码)。
我会为此使用ArrayList
or Vector
,但稍后在代码中我需要获取Module
给定 Key 的对象,而我无法使用ArrayList
or来做到这一点Vector
。
有谁知道可以做到这一点的免费/开源 Java 类,或者Hashtable
根据添加时间从 a 中获取值的方法?
谢谢!
performance - GDBM 的替代品或继任者
我们有一个GDBM键值数据库作为负载平衡的面向 Web 的应用程序的后端,该应用程序是用 C++ 实现的。应用程序提供的数据变得非常庞大,因此我们的管理员已将 GDBM 文件从“本地”存储(在网络服务器上,或非常靠近)移动到大型、共享、远程、NFS 挂载的文件系统。
这影响了性能。我们的性能测试(在测试环境中)显示页面加载时间从数百毫秒(对于本地磁盘)跳跃到几秒(通过 NFS、本地网络),有时甚至高达 30 秒。我相信问题的很大一部分是应用程序从 GDBM 文件中进行了大量随机读取,并且这些读取比 NFS 慢,这在生产中会更糟(前端和后端甚至它们之间的网络硬件更多)并且随着我们的数据库变得更大。
虽然这不是一个关键应用程序,但我想提高性能,并提供一些可用资源,包括应用程序开发人员时间和 Unix 管理员。我的主要限制是时间只有几周的资源。
在我看来,我的选择是:
通过调整参数提高 NFS 性能。我的直觉是我们不会从中得到太多,但我以前错了,我对 NFS 调优并不是很了解。
移动到不同的键值对数据库,例如memcachedb或Tokyo Cabinet。
用其他一些协议替换 NFS(iSCSI 已经提到,但我不熟悉)。
我应该如何解决这个问题?
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/