在整个过程中缓存Flask功能结果?

2024-04-29 08:48:16 发布

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

我在apache后面有一个flask应用程序,它实现了basic auth。用户名和密码通过布尔函数check_auth中的外部服务进行验证。在

我想缓存用户名和密码,如果它们是正确的,以减少外部服务的负载。在

from werkzeug.contrib.cache import SimpleCache

cache = SimpleCache()

def check_auth(username, password):
    if cache.get(username) == password or ext_service_check(username, password):
        cache.set(username, password, 300)
        return True
    else:
        return False

但是Apache总是启动多个进程,这让我认为,如果两个具有相同基本auth头的请求进来,它们很有可能不会命中同一个进程,从而无法利用缓存。在

这个缓存处于什么级别?在

SimpleCache在这里不会提供任何好处吗?在


Tags: 函数auth应用程序密码flaskcachereturnbasic
1条回答
网友
1楼 · 发布于 2024-04-29 08:48:16

docs列出了几个缓存系统。SimpleCache是“对于单进程环境”,它不能跨多个进程工作。下面是其他缓存后端的列表;请使用适合您的环境的。Memcache和Redis是很好的内置选择,如果需要不同的系统,也可以编写自己的子类。在

相关问题 更多 >