【问题标题】:django cache key namingdjango缓存键命名
【发布时间】:2016-06-09 04:25:39
【问题描述】:

我想使用 Django 缓存 API 存储一些项目。命名密钥时是否有最佳实践可遵循。我知道有些人只是将用户名作为密钥。但是我将在不同的视图中缓存各种项目,并且在每个地方都拥有相同的密钥是不可行的。我在想可能会给一个带有用户名+“特定视图”的密钥,以便密钥可以是唯一的。

对于生成密钥,还有其他好的建议吗?

【问题讨论】:

    标签: python django caching django-caching


    【解决方案1】:

    密钥的生成取决于您要实现的目标。

    1. 用户尝试访问的内容是否仅为该用户?
    2. 用户尝试访问的内容是对所有用户通用的吗?

    例如

    假设您正在尝试访问一个 url:

    http://yourserver/endpoint/?filter1=value1&filter2=value2
    

    在上述情况下,您可以使用查询参数filter1=value1&filter2=value2 创建缓存键(通过生成md5 哈希)。

    考虑到前面的两个选项,如果视图应该返回一些特定于用户的数据,那么您还可以附加 user id 以为用户创建唯一键。

    另一个例子可能是这样的 url,其中一个人试图访问来自 source 1 的所有文章:

    http://yourserver/source/1/articles/?filter1=value1&filter2=value2 
    

    在这种情况下,将cache key 附加到source id 可能也很有用(因此在生成键时会使用视图的上下文数据)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 2014-04-01
      • 2016-07-20
      • 2022-01-25
      相关资源
      最近更新 更多