【发布时间】:2011-03-27 20:59:06
【问题描述】:
所以我在 python 应用程序中使用 redis。关于密钥管理的任何建议?我尝试将所有 redis 调用保存在一个位置,但到处都有硬编码键似乎有些不对劲。提示?
【问题讨论】:
所以我在 python 应用程序中使用 redis。关于密钥管理的任何建议?我尝试将所有 redis 调用保存在一个位置,但到处都有硬编码键似乎有些不对劲。提示?
【问题讨论】:
我使用一组处理密钥生成的包装类,例如:
public User Get(string username) {
return redis.Get("user:"+username);
}
我有一个全局可用的这些类的实例,所以只需要调用
Server.Users.Get(username);
这当然是在 .NET 中,但类似的东西应该适用于任何语言。与使用通用映射工具相比,这种方法的另一个优势是它提供了一个放置连接共享和索引等内容的好地方。
【讨论】:
嗯,键名与应用程序中的类和属性相当,因此会发生某种程度的“重复”。
但是,如果您发现要重复大量代码来实际构建密钥,那么您可能需要查看映射器。在 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"
【讨论】: