gpt4 book ai didi

node.js - redis中循环保存数据的方法

转载 作者:可可西里 更新时间:2023-11-01 11:45:44 24 4
gpt4 key购买 nike

使用这个redis Node 客户端 https://github.com/mranney/node_redis

我想在循环中同时保存这三个用途。但不能保存只有最后一个用户被保存了吗?在这里,我想将 rahul0、rahul1、rahul2 保存为 redis 中的用户但只有 rahul2 得救了。

var redis = require("redis"),
sys = require("sys"),
client = redis.createClient();

client.del("channels.59-O");

for(var j=0; j<3; j++) {
client.hgetall("channels.59-O", makeCallback(j));
function makeCallback(index) {
return function(err, result){
console.log('check '+sys.inspect(result));
if(!result.users) {
var channeldata={
'users':"rahul"+index
};
console.log('dsfsdc'+sys.inspect(channeldata));
client.hmset('channels.59-O', channeldata);
} else {
var users=result.users.split(',');
users.push("rahul"+index);
var channeldata={
'users':users.join(',')
};
console.log('check 1 '+sys.inspect(channeldata));
client.hmset('channels.59-O', channeldata);
}
};
}
}

请建议怎么做?

最佳答案

您每次都在写入相同的哈希键,因此最后一个用户 hmset 将优先于其他用户。

改变

client.hmset('channels.59-O', channeldata)

client.hmset('channels.59-O:' + index, channeldata)

有了这个,每个用户都将拥有他的自己的哈希键,由后缀标识。

因此,在您的示例中,在此之后您可以访问(例如通过 redis-cli)channels.59-O:0 for rahul0 数据,channels.59-O:1 用于 rahul1 数据等

此外,您还必须管理它们的删除,client.del("channels.59-O") 现在必须是 client.del("channels.59-O :0"), client.del("channels.59-O:1")

希望对您有所帮助。还要检查这个类似的答案:Writing a query to add multiple values to a key in REDIS Hashes?

关于node.js - redis中循环保存数据的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com