You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ioredis中使用sort命令?遇sort_ro未知命令错误求助

解决Redis sort_ro未知命令错误

问题根源

sort_ro是Redis 7.0版本才新增的只读SORT命令变体,如果你的Redis服务器版本低于7.0,就会触发ERR unknown command错误。ioredis可能会自动尝试使用这个只读命令(比如连接配置为只读模式时),但你的环境不支持它。

解决方案

1. 检查Redis版本

先确认你的Redis版本:

  • 终端执行:redis-server --version
  • 或在Redis CLI中执行:INFO server,查看redis_version字段

如果版本低于7.0,执行以下步骤:

2. 强制使用标准SORT命令

替换原sort方法调用,直接用sendCommand发送标准SORT命令:

await ioredis.sendCommand([
  'SORT',
  itemsByViewsKey(),
  'BY',
  'nosort',
  'LIMIT',
  '0',
  '10',
  'GET',
  `${itemsKey("*")}->name`,
  `${itemsKey("*")}->views`,
  order
]);

3. 检查ioredis连接配置

如果你的ioredis连接开启了readOnly或readOnlyMode选项,会自动优先使用只读命令变体。检查并关闭该配置:

const redis = new Redis({
  // 其他连接配置
  readOnly: false, // 确保此选项为false
});

4. 验证键名格式

错误日志中显示的键名是items#*->name,请确认itemsKey函数返回的键前缀是否符合预期(比如是否应为items:而非items#)。Redis哈希字段的正确语法是键名->字段名,需保证格式无误。

内容的提问来源于stack exchange,提问作者BraveEvidence

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:28:28