Node.js集成最新Redis时出现TypeError: client.lrange is not a function问题求助
问题原因及解决方案
问题根源
你使用的是Redis Node.js客户端v4.x版本,该版本对API做了重构,所有Redis命令对应的客户端方法均采用驼峰式命名,原小写形式的命令方法(比如lrange)已被移除,这就是报错TypeError: client.lrange is not a function的原因。而get能正常工作是因为v4为部分高频命令保留了小写别名,但lrange不在此列。
两种解决方法
方法1:使用驼峰式命名的命令方法
将lrange替换为驼峰式的lRange即可:
const redis = require("redis"); const id = 1; const client = redis.createClient(); await client.connect(); let results = await client.lRange(`device:messages:${id}`, 0, -1); await client.disconnect();
方法2:使用sendCommand直接发送原始Redis命令
如果习惯原始命令的大写形式,可以用sendCommand方法传递命令数组:
const redis = require("redis"); const id = 1; const client = redis.createClient(); await client.connect(); let results = await client.sendCommand(['LRANGE', `device:messages:${id}`, 0, -1]); await client.disconnect();
内容的提问来源于stack exchange,提问作者user824624
相关产品推荐
相关产品推荐

