node.js在Redis中執行LUA腳本報錯:ERR value is not an integer

(error) ERR value is not an integer or out of range
這個錯誤的原因在於調用是沒有制定參數的個數,所以出現解析參數個數時出現範圍問題.

假設調用一個腳本,一個參數:

#redis-cli evalsha 643ae8e4fa979df58a8cd2f6ab4d46f3e16ace5e 0x61c808d82a3ac53231750dadc13c777b59310bd9 "{\"balance\":\"5000000000000000000\",\"txs\":0,\"flag\":0,\"type\":0}"
(error) ERR value is not an integer or out of range

// 如下方式調用正常,注意hash腳本後面的**1**表示一個參數
redis-cli evalsha 643ae8e4fa979df58a8cd2f6ab4d46f3e16ace5e 1 0x61c808d82a3ac53231750dadc13c777b59310bd9 "{\"balance\":\"5000000000000000000\",\"txs\":0,\"flag\":0,\"type\":0}"

node.js調用如下:

redisCli.evalsha([self.config.addressLuaHash, 1, contractAddr, JSON.stringify(addr)], function(err){
    if (logger.isTraceEnabled){
        logger.trace("save address account to redis:", addr);
    }
    callback(err);
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章