如何在 NodeJs 中将 Redis 值检索到数组中
How to retrieve Redis values into a array in NodeJs
我想从我的 redis 中获取所有值并将其存储到 nodejs 中的数组中
这是我现在的代码,
redisClient.keys("Serial*", function (err, keys) {
keys.forEach(function (key, i) {
redisClient.hgetall(key, function (err, currencyData) {
console.log(currencyData);
})
});
});
它允许我将所有值输出到控制台
但我需要使用这些值
假设您需要数组中的 currencyData -
function getAllCurrency(callback){
redisClient.keys("Serial*", function (err, keys) {
var allCurrencyData = [];
var counter = keys.length;
keys.forEach(function (key, i) {
redisClient.hgetall(key, function (err, currencyData) {
if(err)
return callback(err);
console.log(currencyData);
allCurrencyData.push(currencyData);
counter--;
if(counter == 0)
callback(null, allCurrencyData);
})
});
});
}
从另一个函数调用 -
getAllCurrency(function(err, allCurrency){
// use allCurrency array here
});
这不是最好的代码。此外,数组中元素的顺序可能与键数组不同。要获得更好的异步控制,请尝试使用 async 库或 Promises。
我想从我的 redis 中获取所有值并将其存储到 nodejs 中的数组中
这是我现在的代码,
redisClient.keys("Serial*", function (err, keys) {
keys.forEach(function (key, i) {
redisClient.hgetall(key, function (err, currencyData) {
console.log(currencyData);
})
});
});
它允许我将所有值输出到控制台 但我需要使用这些值
假设您需要数组中的 currencyData -
function getAllCurrency(callback){
redisClient.keys("Serial*", function (err, keys) {
var allCurrencyData = [];
var counter = keys.length;
keys.forEach(function (key, i) {
redisClient.hgetall(key, function (err, currencyData) {
if(err)
return callback(err);
console.log(currencyData);
allCurrencyData.push(currencyData);
counter--;
if(counter == 0)
callback(null, allCurrencyData);
})
});
});
}
从另一个函数调用 -
getAllCurrency(function(err, allCurrency){
// use allCurrency array here
});
这不是最好的代码。此外,数组中元素的顺序可能与键数组不同。要获得更好的异步控制,请尝试使用 async 库或 Promises。