django缓存键命名

时间:2016-02-26 04:30:49

标签: python django caching django-caching

我想使用Django缓存API存储一些项目。在命名密钥时是否遵循最佳实践。我知道有些人只是以用户名为关键。但是我将在不同的视图中缓存各种项目,并且在每个不可行的地方都使用相同的密钥。我在考虑可能正在使用用户名+'一些特定的视图'因此密钥可以是唯一的。

是否有任何人有关于生成密钥的其他好建议?

1 个答案:

答案 0 :(得分:1)

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

  1. 用户仅尝试为该用户访问的内容是什么?
  2. 用户是否尝试访问所有用户的通用名称?
  3. e.g。

    让我们假设您正在尝试访问网址:

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

    在上面的例子中,您可以使用查询参数filter1=value1&filter2=value2来创建缓存密钥(通过生成md5哈希)。

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

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

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

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