Suppression de plusieurs clés dans redis-rb
Utilisation de redis-rb dans une application Rails, le suivant ne fonctionne pas:
irb> keys = $redis.keys("autocomplete*")
=> ["autocomplete_foo", "autocomplete_bar", "autocomplete_bat"]
irb> $redis.del(keys)
=> 0
Cela fonctionne bien:
irb> $redis.del("autocomplete_foo", "autocomplete_bar")
=> 2
Ai-je raté quelque chose d'évident? La source est juste:
# Delete a key.
def del(*keys)
synchronize do
@client.call [:del, *keys]
end
end
qui me ressemble, il doit travailler pour passer un tableau...?
source d'informationauteur shalott
Vous devez vous connecter pour publier un commentaire.
Un peu de codage exploration de la manière dont le dossier de l'opérateur fonctionne:
Ainsi passer dans un réseau régulier sera la cause de ce tableau à être évaluées comme un élément unique, de sorte que vous obtenez un tableau à l'intérieur d'un tableau à l'intérieur de votre méthode. Si vous préface le tableau avec * lorsque vous appelez la méthode:
Qui permet à la méthode de savoir décompresser/de ne pas accepter d'autres arguments. Donc, ce qui devrait résoudre le problème que vous rencontrez!
Juste pour le plaisir de plus de précisions, cela fonctionne:
Cela provoque une erreur de syntaxe:
Pour une application Rails, je travaille, j'ai besoin de tester les résultats de chargement et de déchargement redis données.
L'espace de noms est déterminé par l'environnement, évite l'interaction avec le développement. Cela a bien fonctionné.