我在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
在这里不会提供任何好处吗?在
docs列出了几个缓存系统。
SimpleCache
是“对于单进程环境”,它不能跨多个进程工作。下面是其他缓存后端的列表;请使用适合您的环境的。Memcache和Redis是很好的内置选择,如果需要不同的系统,也可以编写自己的子类。在相关问题 更多 >
编程相关推荐