algorithm - 低延迟分布在内存 HashMap (计数映射)中

标签 algorithm redis key-value-store

我正在尝试构建一个可以存储几个 (<=100) 个计数映射的服务,其中每个计数映射可以存储约 10 亿个唯一键,并且计数永远不会超过 MAX_INT。我将在每个计数图上运行的操作是:

  • 许多增量操作(每个键平均 10 次增量)- 增量操作可以从一堆(~10) 不同的节点。
  • 最后一个操作获取所有键/值 在所有增量之后给定 HashMap 的(最好是流式传输) 完成。在这一点上,我们基本上会删除计数图 阅读所有 key 后。我们也保证他们会 一旦我们开始读取键/值计数就不要写入

最本质的要求是每个增量操作都应该具有超低的延迟。耐用性不是问题,但正确性才是最重要的。

我研究了 Redis 和 Hazelcast。从具有使用适合此用例的技术经验的人那里征求意见。

最佳答案

您可以使用 Redis Hash对于每个计数图,并使用 HINCRBY做增量,和HSCANHGETALL获取键/值。

您需要实现一种机制来保证“一旦开始读取就不再写入”,请查看 Redis Pub/Sub机制为例。

关于algorithm - 低延迟分布在内存 HashMap (计数映射)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33183293/

相关文章:

java - 乘法时得到错误的值

laravel - 设计 Laravel 缓存(Redis)架构

asp.net - Web API缓存-如何使用分布式缓存实现无效

node.js - 将redis与 Node 一起使用给出错误

c++ - 自修改算法?

algorithm - 通过交易最大化利润

algorithm - 选择几何最接近原始点的子集

PHP 连接到 Redis

.net - 在 RavenDB 中存储对象的对象要求(限制)是什么

database - Redis 复制问题