4

所以我在 python 应用程序中使用 redis。关于密钥管理的任何建议?我尝试将所有 redis 调用保存在一个位置,但是到处都有硬编码键似乎有些不对劲。提示?

4

2 回答 2

2

我使用一组处理密钥生成的包装类,例如:

public User Get(string username) {
    return redis.Get("user:"+username);
}

我有一个全局可用的每个类的实例,所以只需要调用

Server.Users.Get(username);

这当然是在 .NET 中,但类似的东西应该适用于任何语言。与使用通用映射工具相比,这种方法的另一个优点是它提供了一个放置诸如连接共享和索引之类的东西的好地方。

于 2010-10-19T04:43:06.777 回答
1

好吧,键名与应用程序中的类和属性相当,因此会发生某种程度的“重复”。

但是,如果您发现要重复大量代码来实际构建密钥,那么您可能需要查看映射器。在 Python 中有Redisco

或者,如果您需要更简单的东西,Ruby 中有Nest(将其移植到 Python 应该很简单)。它允许您干燥对键的引用:

users = Nest.new("User")

user = users[1]
# => "User:1"

user[:name]
# => "User:1:name"

redis.set(user[:name], "Foo")

# or even:
user[:name].set("Foo")

user[:name].get
# => "Foo"
于 2010-08-26T02:50:30.803 回答