django 缓存键命名

django cache key naming

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

大家还有什么生成密钥的好的建议吗?

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

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

例如

假设您正在尝试访问 url:

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

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

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

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

的所有文章
http://yourserver/source/1/articles/?filter1=value1&filter2=value2 

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