如何解决node.js redis.get(key,callback) 即使数据和密钥都存在于redis db中,也会随机返回null
我在 node.js 中陷入了一个非常不正常的情况。我正在使用 ioredis npm 模块连接 redis 数据库并将密钥保存在 redis db 1 中。 在我的应用程序中,多个 api 首先从一个键中获取数据,然后从第一个键返回的另一个键中获取数据。 在这种情况下,当节点实例上出现 2 个或更多 api 命中时。 node js在redis数据库中存在的key甚至key上随机给出null。 我还尝试使用替代方法添加 settimeout 以在一段时间后获取密钥,但仍然没有成功。请检查下面的代码
const userDataKey: any = await getUserDataFromredis(`${UserConfig.USER_LOGIN_REdis_PREFIX}${decodedData.id}_${decodedData.uuid}`)
const userData: any = await getUserDataFromredis(`${userDataKey}`)
export const getUserDataFromredis = async (key: string) => {
return new Promise((resolve,reject) => {
redisConnection.select(UserConfig.REdis_DB,(err) => {
if (err) reject(err)
console.log("this is the key : ",key);
redisConnection.get(key,(error,data: any) => {
if (err) reject(error)
console.log("this is data : ",data);
if (_.isNull(data)) {
console.log("NULL CONDITION MATCHED:",data);
setTimeout(() => {
redisConnection.get(key,data: any) => {
if (err) reject(error)
console.log(`this is key and data if first time found NULL:${key},${data}`);
resolve(JSON.parse(data));
});
},1000);
} else {
resolve(JSON.parse(data));
}
});
})
})
}
你能帮我看看应该是什么原因吗,我有时甚至在redis数据库中存在key也会得到null。
this is data : "rm_user_92"
this is data : "rm_user_92"
this is data : {"id":92,"name":"VinayRM1","email":"vinayrm20@yopmail.com","password":"$2b$10$0h5i.TiB6AENQF1c7XB1DOrBh/yNcKW9m3H.CM77wz.59IVfOjrEe","phone":"943434343434","is_active":"1","image":null,"user_type":2,"created_at":"2021-01-11T11:56:44.000Z","updated_at":"2021-01-11T06:26:44.046Z","added_by":1,"company":null,"country_code":91,"password_updated_at":"2021-01-29T19:14:01.000Z","device_token":"asdfdsafsadfasfsaf"}
Executing (default): Select U.*,A."id" as rm_id,A."name" as rm_name,A."email" as rm_email,A."phone" as rm_phone
FROM "user" U
LEFT JOIN "admin" A ON U."rm_id" = A."id" where U."id" = 172
Executing (default): SELECT * FROM "augment_view_analytics" WHERE import_date='2021-11-08' and user_id=172 and file_type=1;
Executing (default): SELECT * FROM "augment_view_analytics" where user_id = 172 and file_type=1 and import_date <= '2021-11-08' ORDER BY import_date DESC LIMIT 1;
this is data : null
NULL CONDITION MATCHED: null
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。