【问题标题】:Delete specific cache in Flask-Cache or Flask-Caching删除 Flask-Cache 或 Flask-Caching 中的特定缓存
【发布时间】:2016-07-10 20:32:24
【问题描述】:

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

目前我正在使用装饰器 @app.cache.memoize(cache_memoize_value) 并通过调用 app.cache.delete_memoized(view) 来刷新它

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

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

【问题讨论】:

  • 事实上,我也遇到了同样的问题。有函数,delete,但 api 说 `delete(*args, **kwargs) 内部缓存对象的代理函数。 `

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


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

【讨论】:

  • 我会添加以供将来参考,如果您需要删除特定的缓存值,您可以这样做:cache.delete_memoized(function_with_cache_decorator, value_to_delete)
【解决方案2】:

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

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

【讨论】:

  • 如果我想缓存视图,你知道如何delete 一个特定的缓存
猜你喜欢
  • 2022-11-25
  • 2020-01-20
  • 2020-03-20
  • 2014-01-20
  • 2020-10-29
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
相关资源
最近更新 更多