Python服务器可以跨Apache工作程序缓存数据库查询吗?

问题描述 投票:0回答:2

我正在尝试加速查询数据库的网站的主页,以获取用作背景图像的随机URL。我尝试过的一件事是在Python代码中添加一个函数来缓存该数据库查询的结果60分钟,当我在本地运行服务器时,我发现它似乎工作正常:重新加载页面显示的图像与前一次,而不是一个新的随机图像。

但是,当我将此代码部署到运行Apache服务器的Digital Ocean Droplet时,它似乎不起作用:重新加载页面会显示不同的图像。我怀疑发生的事情是每次不同的工作者都在处理我的请求,并且每个工作者都有自己的数据库缓存结果。

有没有办法在工作人员之间缓存这些数据库查询或获得一些类似的结果?注意:硬编码背景图像的明显解决方案不是一种选择,因为我工作的人希望背景图像变化。

python apache web.py
2个回答
0
投票

Apache在工作者之间共享内存,但我不知道python(比如uwsgi)访问它。与nginx相同。

替代方案是使用算法来确定要显示的内容而不是真正随机的。例如,所有查询的小时== 1 - > picture_1,小时== 2 - > picture_2等。


0
投票

在做了一些阅读之后,似乎这个问题的标准解决方案是使用像Memcached或Redis这样的db查询缓存系统。

© www.soinside.com 2019 - 2024. All rights reserved.