【问题标题】:Django REST Cache InvalidationDjango REST缓存失效
【发布时间】:2020-04-17 17:10:44
【问题描述】:

我有一个使用 Rest 框架实现的 Django 项目和 API 视图。我正在使用 @cache_page 装饰器对其进行缓存,但我需要实现缓存失效,但我没有看到如何做到这一点 - 我需要自定义装饰器吗?

问题: 视图检查 API KEY 的访问权限,并将其从之前的访问检查中缓存起来,但是,如果用户在缓存过期之前更改 API KEY,视图将返回不再存在的密钥的 OK 状态。

【问题讨论】:

    标签: python django api django-rest-framework


    【解决方案1】:

    是的,您需要一个将身份验证/用户上下文考虑在内的缓存装饰器。 cache_page() 仅适用于 GET 请求,以及仅基于 URL 的键。

    不过,更好的是,

    1. 在确定需要缓存之前不要使用缓存
    2. 如果您确实需要它(想想为什么;缓存失效是两个困难的事情之一),请在您的视图中使用更精细的缓存,而不是 cache_page()

    【讨论】:

    • 是的,我在 GET 请求上将它与基于密钥的 url 一起使用,我真的需要它,因为我从那个视图得到的响应很慢。你推荐实现我自己的 cache_page 装饰器吗?
    • 没有。然后在该视图中使用粒度缓存;缓存检索缓慢的数据。
    • 知道了!谢谢!!
    猜你喜欢
    • 2012-04-24
    • 2016-02-23
    • 2017-03-12
    • 2018-12-28
    • 2015-04-29
    • 1970-01-01
    • 2013-04-07
    • 2017-11-05
    • 1970-01-01
    相关资源
    最近更新 更多