所以我在一个python应用程序中使用redis。对密钥管理有什么建议吗?我试着把所有的redis调用都放在一个位置,但似乎到处都是硬编码的键。小贴士?
发布于 2010-10-19 12:43:07
我使用了一组处理键生成的包装类,如下所示:
public User Get(string username) {
return redis.Get("user:"+username);
}我有一个全局可用的每个类的实例,所以只需调用
Server.Users.Get(username);这当然是在.NET中实现的,但是类似的东西应该可以在任何语言中运行。与使用通用映射工具相比,这种方法的另一个优点是它提供了一个很好的位置来放置连接、共享和索引等内容。
发布于 2010-08-26 10:50:31
嗯,键名可以与应用程序中的类和属性相媲美,因此会发生一定程度的“重复”。
但是,如果您发现要重复大量代码来实际构建键,那么您可能需要查看映射器。在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"https://stackoverflow.com/questions/3450027
复制相似问题