2

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

一切对我来说都很好,但我想知道为什么 Django-Redis 会在我保存字符串的每个键之前添加:1:

SET键和值(工作)

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

获取键和值(工作)

print cache.get("foo") 

Redis 命令行界面

 1) ":1:foo"

获取 CLI 中的密钥

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

此致

4

1 回答 1

2

这实际上是 Django 缓存 API 的一部分。具体来说,缓存后端使用缓存前缀(在您的情况下为空字符串)和版本号(在您的情况下为 1)转换密钥。

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

于 2015-12-18T22:29:55.190 回答