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

Delete specific cache in Flask-Cache or 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() 清除它。但是,这种清除方法将清除所有内容,而不仅仅是特定视图。

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

这其实很简单,我早该尝试过的。 与缓存装饰器一样,您可以在记忆装饰器中指定一个值。 但不是这样做: @app.cache.memoize(cache_memoize_value)

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

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