删除Flask-Cache或Flask-Caching中的特定缓存

时间:2016-03-23 13:49:15

标签: python caching flask flask-cache flask-caching

我在python中的API中使用Flask缓存。

目前我正在使用装饰器@app.cache.memoize(cache_memoize_value),我通过调用app.cache.delete_memoized(view)

来刷新它

问题是,对于memoize,它会在n次观看时缓存,而不会在特定时间内缓存。如果我想为缓存指定超时,我需要使用装饰器@app.cache.cached(timeout=300)并使用app.cache.clear()清除它。但是,这种清晰的方法将清除所有内容,而不仅仅是一个特定的视图。

如何在使用缓存装饰器时清除特定视图?

2 个答案:

答案 0 :(得分:3)

事实上它很简单,我之前应该尝试过这个。 与缓存的装饰器一样,您可以在memoized装饰器中指定一个值。 但不是这样做: @app.cache.memoize(cache_memoize_value)

你需要这样做 @app.cache.memoize(timeout=cache_memoize_value)

答案 1 :(得分:1)

  • 对于cache.cached(),使用cache.delete()删除特定缓存,传递缓存密钥(默认为view/<request.path>)。
  • 对于cache.memoize(),使用cache.delete_memoized()删除特定缓存,传递缓存密钥(默认为带或不带args的函数名称)。
  • 使用cache.clear()删除所有缓存数据。