我想使用Django缓存API存储一些项目。在命名密钥时是否遵循最佳实践。我知道有些人只是以用户名为关键。但是我将在不同的视图中缓存各种项目,并且在每个不可行的地方都使用相同的密钥。我在考虑可能正在使用用户名+'一些特定的视图'因此密钥可以是唯一的。
是否有任何人有关于生成密钥的其他好建议?
答案 0 :(得分:1)
密钥的生成取决于您要实现的目标。
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
可能也很有用(因此这会在生成密钥时使用视图的上下文数据)。