我在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
不会在这里提供任何好处吗?
答案 0 :(得分:1)
docs列出了几个缓存系统。 SimpleCache
“适用于单个流程环境”,它不适用于多个流程。正下方是其他缓存后端的列表;使用适合您环境的一个。 Memcache和Redis是很好的内置选择,或者如果你需要一个不同的系统,你可以编写自己的子类。