我已在我的应用程序npm install redis
中安装了redis模块。在本地我可以连接到那个罚款并写入redis,如此
var redis = require('redis');
if(process.env.NODE_ENV == 'production') {
var r_client = redis.createClient(process.env.REDISCLOUD_URL);
} else {
var r_client = redis.createClient();
}
function writeToRedis(tweet, screen_name){
return new Promise((resolve, reject) => {
r_client.hset(screen_name, 'tweet_id', tweet['id'], 'tweet_text', tweet['text'], 'avatar', tweet['user']['profile_image_url'], 'screen_name', tweet['user']['screen_name'], function (error, result) {
if (error) {
reject(error);
return;
}
resolve(result);
});
});
}
当我部署到Heroku并尝试写入redis时(我已经安装了插件Redis Cloud)我收到以下错误
(node:4) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReplyError: ERR wrong number of arguments for 'hset' command
我是否应该使用Redis Cloud,或者我做错了什么?我很困惑,因为它在本地工作
由于
答案 0 :(得分:1)
redis中的Hset函数一次只允许一个键值对
client.hset("hash key", "hashtest 1", "some value", callback);
client.hset(["hash key", "hashtest 2", "some other value"], callback);
使用hmset代替
client.hmset(["key", "test keys 1", "test val 1", "test keys 2", "test val 2"], function (err, res) {});