Python服务器能否跨Apache workers缓存数据库查询?

2024-04-26 13:09:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

是否有任何方法可以跨工作人员缓存这些数据库查询或获得类似的结果?注:硬编码背景图像的明显解决方案不是一个选项,因为我为之工作的人希望背景图像有所不同


Tags: 函数代码图像服务器数据库url网站apache
2条回答

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

另一种选择是使用一种算法来确定要显示的内容,而不是真正的随机显示。例如,所有小时==1->;图片1,小时==2->;图2等

在做了更多的阅读之后,这个问题的标准解决方案似乎是使用数据库查询缓存系统,比如Memcached或Redis

相关问题 更多 >