我正在使用Django Redis来存储一些简单的数据。
一切对我来说都很好,但我想知道为什么Django Redis会为我保存字符串:1:
的每个键做准备。
SET密钥和值(工作)
cache.set("foo", "bar", timeout=100)
GET密钥和值(工作)
print cache.get("foo")
Redis CLI
1) ":1:foo"
CLI 中的GET密钥
GET foo
Result: (nil)
GET :1:foo
Result: "x80x02Ux06barXqx01."
向致以最良好的问候
这实际上是Django缓存API的一部分。具体来说,缓存后端使用缓存前缀(在您的情况下为空字符串)和版本号(在您情况下为1)转换密钥。
前者允许服务器在共享同一缓存后端的情况下使用名称空间来控制冲突,后者允许您使用版本控制来避免在更改缓存数据的格式时刷新数据库。