Django Redis 在键上附加相同的注释

Django Redis appends same annotaion on key

我正在使用 Django-Redis 来存储一些简单的数据。

对我来说一切正常,但我想知道为什么 Django-Redis 会在我保存字符串 :1:.

的每个键前加上前缀

设置键和值(有效)

cache.set("foo", "bar", timeout=100)

获取键和值(有效)

print cache.get("foo") 

Redis CLI

 1) ":1:foo"

在 CLI 中获取密钥

GET foo
Result: (nil) 
GET :1:foo
Result: "\x80\x02U\x06barXq\x01."

此致

这实际上是 Django 缓存的一部分 API。具体来说,缓存后端使用 cache prefix (in your case, the empty string) and a version number(在您的情况下为 1)转换密钥。

前者允许服务器在共享相同的缓存后端时使用名称空间来控制冲突,后者允许您使用版本控制来避免在更改缓存数据格式时刷新数据库。