Je travaille avec redis dans une application python. Des conseils sur la gestion des clés ? J'essaie de garder tous les appels redis à un seul endroit mais quelque chose ne va pas avec le codage en dur des clés partout. des conseils ?
Réponses
Trop de publicités?J'utilise un ensemble de classes enveloppantes qui gèrent la génération de clés, quelque chose comme :
public User Get(string username) {
return redis.Get("user:"+username);
}
Je dispose d'une instance de chacune de ces classes au niveau mondial, il me suffit donc d'appeler
Server.Users.Get(username);
C'est en .NET bien sûr, mais quelque chose de similaire devrait fonctionner dans n'importe quel langage. Un autre avantage de cette approche par rapport à l'utilisation d'un outil de mappage générique est qu'elle permet de mettre en place des éléments tels que le partage de connexion et l'indexation.
Les noms de clés sont comparables aux classes et aux attributs de votre application, de sorte qu'il y aura un certain degré de "répétition".
Cependant, si vous avez l'impression de répéter beaucoup de code pour construire vos clés, vous devriez peut-être vous tourner vers un mappeur. En Python, il y a Redisco .
Ou si vous avez besoin de quelque chose de plus simple, en Ruby il y a Nid (le portage vers Python devrait être trivial). Il vous permet de sécher vos références aux clés :
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"