1

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

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

4

1 回答 1

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在这种情况下,附加with也可能很有用source id(因此在生成键时,它使用视图的上下文数据)。

于 2016-02-26T06:04:26.420 回答