我正在编写一个具有多个gunicorn工作者的服务器,并希望让它们都可以访问一个特定的变量。我正在使用Redis来做这件事(它在RAM中,所以它很快,对吧?)但是每个GET或SET请求都会添加另一个客户端。我每秒执行大约150个请求,所以它很快就达到了Heroku的25个连接限制。要访问数据库,我先使用db = redis.from_url(os.environ.get("REDIS_URL"))
,然后使用db.set()
和db.get()
。有没有办法降低这个数字?例如,通过对每个工作人员反复使用相同的连接?但我该怎么做呢?我有3个黑角工作人员,每个人每秒执行大约50次查询。
如果使用redis是个坏主意(很可能是),那就太好了,如果你能提出替代方案,但也请包括一个解决我当前问题的方法,因为我的大部分代码都是基于redis和的,我还没有足够的时间来重写整个。
注意:这三段代码是唯一调用redis
和db
的时间。我没有做任何配置或任何事情。也许这些信息会有所帮助。
发布于 2018-07-25 21:05:35
最有可能的是,您的脚本为每个请求创建一个新连接。
但是每个工作者都应该创建一次并永远使用它。
您使用的是哪种框架?
它应该有一些关于如何为你的webapp配置Redis的文档。
P.S. Redis是处理这一问题的一个很好的选择:)
https://stackoverflow.com/questions/51519333
复制相似问题