(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);
});