Redis Key Management - PullRequest
       4

Redis Key Management

4 голосов
/ 10 августа 2010

Так что я работаю с Redis в приложении Python.какой-нибудь совет по управлению ключами?я стараюсь держать все вызовы redis в одном месте, но что-то не так с клавишами жесткого кодирования везде.советы?

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

Я использую набор классов-оболочек, которые обрабатывают генерацию ключей, что-то вроде:

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

У меня есть экземпляр каждого из этих классов, доступный во всем мире, поэтому просто нужно вызвать

Server.Users.Get(username);

Это, конечно, в .NET, но нечто подобное должно работать на любом языке.Дополнительным преимуществом этого подхода по сравнению с использованием универсального инструмента сопоставления является то, что он обеспечивает хорошее место для таких вещей, как совместное использование соединений и индексация.

1 голос
/ 26 августа 2010

Ну, имена ключей сопоставимы с классами и атрибутами в вашем приложении, так что произойдет некоторая степень «повторения».

Однако, если вы обнаружите, что вы на самом деле повторяете много кода для создания своих ключей, то вам, возможно, захочется взглянуть на маппер. В 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...