首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多少次对HINCRBY的调用是合理的?

多少次对HINCRBY的调用是合理的?
EN

Stack Overflow用户
提问于 2011-07-30 02:51:13
回答 1查看 956关注 0票数 3

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

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

它将需要调用HINCRBY类似于每个事件5-50次,我的目标是每秒5-100次事件。

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

很明显,我还得收集垃圾。我计划通过为每个事件所需的每个散列调用EXPIRE (不超过2-5次,因为一些计数器在相同的散列中)。可以吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-30 03:05:06

发疯吧。如果硬件准备就绪,Redis将能够处理负载。显然,你应该尽快建立原型并尝试它,但这绝对是Redis能够处理的事情。

不过,我建议你已经考虑过扩展了。预先解决可伸缩性问题要比等到问题出现时再解决要容易得多。Redis (到目前为止)还没有任何集群解决方案,而且您受到RAM (和一个CPU)的限制,所以最终您将需要某种向外扩展到更多服务器的方法。

这样做的方法是客户端分片,即对于每个操作,您散列您的键并查看它位于哪个服务器上,然后与该服务器对话(这显然会使使用多个键的操作很难执行,因此您可能必须绕过这一点进行设计)。Ruby客户端有一些开箱即用的支持,但是如果您正在使用另一个驱动程序(and Salvatore has a guide, too),那么自己做起来并不难(尽管不方便)。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6877651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档