gpt4 book ai didi

statistics - 多少次 HINCRBY 调用是合理的?

转载 作者:IT王子 更新时间:2023-10-29 06:01:27 26 4
gpt4 key购买 nike

我正在尝试重新发明轮子并将一些统计数据存储在 Redis 中。

我正在考虑急切聚合,并在每个新事件发生后立即递增所有相关计数器(每秒可能发生几次)。

每个事件需要调用 HINCRBY 5-50 次,我的目标是一开始每秒调用 5-100 个事件。

Redis 是不是太多了?如果是,我是否应该设定一些下限(每个事件 10 次?只有一次?)?如果不是,它能否扩展这些参数中的任何一个(我对扩展到 1000 个事件更感兴趣?10000?)?

显然,我还必须收集垃圾。我计划通过为每个事件所需的每个散列调用 EXPIRE 来做到这一点(不超过 2-5 次,因为一些计数器在同一个散列中)。可以吗?

最佳答案

疯了。如果硬件支持,Redis 将能够处理负载。显然,您应该尽快制作原型(prototype)并进行试用,但这绝对是 Redis 应该能够处理的事情。

不过,我建议您已经考虑扩展。预先解决扩展问题比等待它成为问题要容易得多。 Redis(目前)还没有任何集群解决方案,并且您受到 RAM(和一个 CPU)的限制,因此最终您将需要某种方式来扩展到更多服务器。

实现它的方法是客户端分片,即对于每个操作,您对 key 进行哈希处理并查看它位于哪个服务器上,然后与该服务器通信(这显然使得使用多个 key 的操作很难执行,所以你可能必须围绕它进行设计)。 Ruby 客户端有一些开箱即用的支持,但如果您使用另一个驱动程序 ( and Salvatore has a guide, too ),自己动手并不难(尽管不方便)。

我建议开始时在同一台机器上运行两个或四个 Redis 实例(每个 CPU 一个,或类似的东西),再加上另一台运行从机的机器以实现冗余和故障转移(您也可以在每个服务器上运行两个主服务器和两个从服务器).这样,如果您需要增长,将实例移动到其他服务器就不会做太多工作。如果你有四个实例,你将能够毫不费力地移动到四台机器上,因为你所要做的就是在新机器上设置一个从机,等待它同步,然后将其用作主机。如果您没有四个实例开始,移动到新机器意味着手动移动 key ,这可能需要大量工作。

关于statistics - 多少次 HINCRBY 调用是合理的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com