2017-05-31 77 views
0

我只是想知道如何以及在何处响应使用烧瓶缓存 烧瓶缓存的例子,当存储:如何烧瓶缓存存储高速缓存

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) 

回答

1

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 )

+0

这是非常有用的。谢谢 –