概述
键值存储(Key-Value Store)是一种强大的数据存储解决方案,可帮助您管理庞大的数据点列表(例如数百个(或数百万个)钱包地址)以及键值对。借助键值存储,您可以按需更新列表和键值对,并随时通过 REST API 进行管理和使用,或在您的 Streams 过滤器中无缝操作。
为什么选择键值存储?
在处理海量数据时,高效的存储和快速的检索至关重要。键值存储与流服务无缝集成,使您能够轻松地根据实时和历史流数据对列表和键值集进行评估,管理列表和键值集,并以高效率逐块追踪数据点。
该解决方案特别适用于需要实时跟踪、更新和评估大型数据集的应用场景,例如:
- 希望跟踪一个庞大且动态的钱包地址列表中活动情况的钱包和投资组合应用程序
- 追踪和核查代币持仓情况
- 用于跟踪随时间变化的数值并发出警报的应用程序
键值存储的特点
- 可扩展的数据管理——轻松管理、访问和分析大量数据列表,例如数百万条地址或其他数据点。
- 实时更新——按需更新数据,并可立即访问。
- API 访问——通过 REST API 与您的列表和键值集进行交互。
- Streams 集成——在 Streams 过滤器中无缝使用键值存储,以增强数据处理能力。
- 高性能——键值存储具有超快的访问速度,可高效地进行数据查询和更新。
用例示例
- 钱包地址管理:管理钱包地址列表,以便将其与流式数据进行比对。
- 历史数据追踪:追踪各项指标随时间变化的数值。
- 数据分析:对大型数据集计算增量及其他统计指标。
通过利用键值存储,您可以增强和自定义流,从而根据您的具体要求创建更复杂、更高效且响应更敏捷的流式数据集。
列表与集合:如何选择合适的数据类型
| 列表 | 集合 | |
|---|---|---|
| 存储的内容 | 一个由字符串项组成的、带有名称的集合,这些项都存储在同一个键下 | 一个键值对 |
| 最适合 | 会员信息核查(例如,“这个地址是否在我的关注列表中?”) | 存储和检索单个数据点 |
| 示例 | 一个名为 已关注钱包 包含数千个钱包地址 | 一个名为 lastProcessedBlock 带有值 19271294 |
| 流函数 | qnContainsListItems, qnUpsertList, qnAddListItem | qnGetSet, qnAddSet, qnBulkSets |
当需要根据流式数据管理和评估一组动态项目(例如钱包地址、代币合约、账户 ID)时,请使用列表。当需要存储和检索可能随时间变化的单个数据点(例如跟踪累计总和、存储最后处理的区块编号、缓存区块之间的计算结果)时,请使用集合。
功能可用性与费用
所有 Quicknode 套餐的用户均可使用键值存储服务。更多详情,请查看定价页面。
访问
通过Quicknode 开发者门户中的 Streams 访问键值存储,或通过键值存储 REST API 进行访问。
在流过滤器中使用键值存储
键值存储中的项目区分大小写。在处理区块链地址时,这一点尤为重要,因为必须完全按照链上显示的格式输入地址。
在 Streams 过滤器中,可以无缝访问和管理键值存储。您可以创建新的列表和键值集,向列表中添加或移除项目,更新键值集,并根据流式区块链数据对键值存储数据进行评估。
在键值存储中,集合指的是单个键值对。列表则是与单个键相关联的、具有名称的字符串项集合。
使用 列表 当你想将多个值与一个键关联时,例如,你可以通过将大量钱包地址添加为 项目 添加到一个名为 地址.
使用键值 集合 当你想要存储数据点以便于检索和更新时,例如,你可以计算一个区块中的平均 gas 价格,并将该值与键一起存储 gasPrice,然后在下一块代码中调用它来计算增量。
流过滤器中可用的键值存储函数
列表
qnLib.qnUpsertList: 在键值存储中创建或更新一个新列表。qnLib.qnAddListItem: 将一个项目添加到键值存储中的特定列表中。qnLib.qnRemoveListItem: 从键值存储中的特定列表中删除一个项目。qnLib.qnContainsListItems: 批量查询,用于检查多个项目是否属于键值存储中的特定列表。将所有查询合并为尽可能少的调用,以减少往返次数并提升性能。qnLib.qnDeleteList: 删除键值存储中的特定列表。
列表过滤代码示例
一个完整且可运行的示例,演示了所有列表操作(qnUpsertList, qnAddListItem, qnRemoveListItem, qnContainsListItems, qnDeleteList),请参阅 流过滤器文档.
集合
qnLib.qnAddSet: 在键值存储中创建一个键值对。qnLib.qnBulkSets: 在键值存储中批量创建和删除键值对。qnLib.qnDeleteSet: 从键值存储中删除一个键值对。qnLib.qnGetSet: 从键值存储中检索特定键的值。qnLib.qnListAllSets: 列出键值存储中所有集合的键。
键值存储集合的过滤代码示例
一个完整且可运行的示例,演示了所有集合运算(qnAddSet, qnGetSet, qnListAllSets, qnBulkSets, qnDeleteSet),请参阅 流过滤器文档.
对键值存储有任何反馈吗?请告诉我们。