删除 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()
删除所有缓存数据。
我在 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()
删除所有缓存数据。