目前,redis的maxclients限制为10k 所以,我不能产生超过10万的芹菜工人(一个在50台机器上有200个prefork的芹菜工人)。
如果不改变redis maxclient限制,我可以采取哪些措施来容纳超过10万的芹菜工人?
我在考虑设置主从式redis集群,但芹菜守护进程如何知道连接不同的奴隶?
答案 0 :(得分:0)
别。您的Redis命令延迟超过10,000个连接将受到影响,通常很大。甚至基本的Redis ping命令都显示了这一点。
第一步:重新评估10k工人的要求。机会非常高,它充满了膨胀。什么数据支持它?大多数情况下,人们习惯于减慢并发性较高的服务器,因为每个请求所需的时间比Redis多出几个数量级。考虑到这一点,经过适当调整的Redis单实例每秒可处理超过一百万个请求。算一算,你会发现你不太可能有流量工作量来保持这些工人的忙碌,而不会闯入其他限制,如光速和Redis容量。
如果你确实需要这种级别的并发性,或许尝试集成Twemproxy以更安全的方式处理连接,尽管如果你真的有足够的工作量来证明10k并发连接的合理性,你很可能会看到延迟效应。
您的其他选项是Codis,并跨多个Redis实例或上述的某些组合对数据进行分区。