Question de base: en utilisant Node.js, je voudrais obtenir toutes les clés de ma base de données redis. Mon redis db ressemble à ceci quand j'appelle clés *;
Donc, chaque enregistrement que j'ai, a une clé unique, générée sous forme de chaîne aléatoire. Maintenant, je voudrais appeler quelque chose comme foreach (clé dans Redis) et obtenez toutes les clés dans le redis. Serait-il possible de réaliser un "SELECT * FROM Redis" -like requête avec Node.js & Redis
Bien sûr, vous devrez installer le module redis
pour nodejs
qui se trouve sur https://github.com/mranney/node_redis .
npm install node_redis
Mise à jour
La commande ci-dessus n'est plus disponible. vous pouvez utiliser les éléments suivants:
npm install redis
Ensuite, vous feriez:
var redis = require('redis'),
client = redis.createClient();
client.keys('*', function (err, keys) {
if (err) return console.log(err);
for(var i = 0, len = keys.length; i < len; i++) {
console.log(keys[i]);
}
});
En règle générale, vous ne voudrez pas toujours renvoyer toutes les clés (les performances seront mauvaises pour les ensembles de données plus volumineux), mais cela fonctionnera si vous testez simplement les choses. Il y a même un bel avertissement dans la documentation Redis
:
Avertissement: considérez KEYS comme une commande qui ne doit être utilisée que dans des environnements de production avec une extrême prudence. Il peut ruiner les performances lorsqu'il est exécuté sur de grandes bases de données. Cette commande est destinée au débogage et aux opérations spéciales, telles que la modification de la disposition de votre espace de clés. N'utilisez pas KEYS dans votre code d'application habituel. Si vous cherchez un moyen de trouver des clés dans un sous-ensemble de votre espace de clés, pensez à utiliser des ensembles.
Installer le client redis pour nodejs
npm install redis
Ensuite, je fais ce qui suit pour obtenir toutes les données de clé
var redis = require('redis'),
client = redis.createClient();
client.multi()
.keys('*', function (err, replies) {
// NOTE: code in this callback is NOT atomic
// this only happens after the the .exec call finishes.
console.log("MULTI got " + replies.length + " replies");
replies.forEach(function (reply, index) {
console.log("Reply " + index + ": " + reply.toString());
client.get(reply, function(err, data){
console.log(data);
});
});
})
.exec(function (err, replies) {});
npm install node_redis
n'est plus disponible maintenant. Utilisez-le à la place -
npm install redis