如何烧瓶缓存存储高速缓存
问题描述:
我只是想知道如何以及在何处响应使用烧瓶缓存 烧瓶缓存的例子,当存储:如何烧瓶缓存存储高速缓存
from flask import Flask, request
from flask_caching import Cache
import datetime
app = Flask(__name__)
cache = Cache(app, config={'CACHE_TYPE': 'simple'})
def make_cache_key(*args, **kwargs):
return request.url
@app.route('/', methods=['GET'])
@cache.cached(timeout=50, key_prefix=make_cache_key)
def foo():
time = str(datetime.datetime.now()) + " " + str(request.url)
return time, 200
if __name__ == '__main__':
app.run(debug=True)
答
TL;博士
在你的榜样,它将被存储在Python解释器的内存中。
您的设置是在内存中,所以它不会在多个服务器之间扩展。但是,您可以选择指定不同的高速缓存后端(例如,memcached或Redis,或者通过扩展基本高速缓存类来指定自定义高速缓存)。
按照docs我们看到它使用WERKZEUG:
除了通过一个穿制服的API提供的所有WERKZEUG支持的高速缓存后端的支持
然后,当你在看werkzeug cache docs :
如果您使用的是开发服务器,您可以创建一个SimpleCache对象,该对象是一个简单的缓存t帽子将项目保存在Python解释器的内存中。
然后它继续展示一个使用相同设置({'CACHE_TYPE': 'simple'}
)的示例,它表示它是Python解释器的内存。
如果你想使用一个不同的缓存后端,看看Configuring Flask Caching:
内置的缓存类型:
空:NullCache(默认)简单:SimpleCache memcached的
MemcachedCache(pylibmc或需要memcache)gaememcached
GAEMemcachedCache redis:RedisCache(Werkzeug 0.7 required)
文件系统:FileSystemCache saslmemcached:SASLMemcachedCache(需要pylibmc )
这是非常有用的。谢谢 –