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

时间:2016-05-12 19:36:13

标签: python caching flask memcached

我在apache后面有一个烧瓶应用程序,它实现了基本身份验证。用户名和密码将根据布尔函数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不会在这里提供任何好处吗?

1 个答案:

答案 0 :(得分:1)

docs列出了几个缓存系统。 SimpleCache“适用于单个流程环境”,它不适用于多个流程。正下方是其他缓存后端的列表;使用适合您环境的一个。 Memcache和Redis是很好的内置选择,或者如果你需要一个不同的系统,你可以编写自己的子类。

相关问题