Python 服务器可以跨 Apache worker 缓存数据库查询吗?

Can a Python server cache db queries across Apache workers?

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

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

有什么方法可以跨工作缓存这些数据库查询或实现类似的结果吗?注意:硬编码背景图像的明显解决方案不是一个选项,因为我工作的人希望背景图像有所不同。

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

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

经过更多阅读,似乎这个问题的标准解决方案是使用数据库查询缓存系统,如 Memcached 或 Redis。