*Redis SORT_RO 命令
只读版本的 SORT 命令。不修改任何 key,不支持 STORE 选项。Redis 7.0+ 引入。
*语法
SORT_RO key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 要排序的键名 |
| BY | String | 否 | 按外部 key 排序 |
| LIMIT | Integer | 否 | 分页 |
| GET | String | 否 | 返回外部 key 的值 |
| ASC/DESC | 标志 | 否 | 升序/降序 |
| ALPHA | 标志 | 否 | 字典序 |
*返回值
| 条件 | 返回值 |
|---|---|
| 有结果 | 排序后的元素数组 |
*时间复杂度
O(N+M*log(M)),同 SORT。
*示例
> RPUSH mylist 3 1 2
> SORT_RO mylist
1) "1"
2) "2"
3) "3"
# 外部排序
> SORT_RO user_ids BY user_score:* GET user_name:*
*常见错误
- 使用 STORE:SORT_RO 不支持 STORE,使用 STORE 会报错。
*最佳实践
- 副本只读排序:在只读副本上执行 SORT_RO 排序,分担主节点压力。
*FAQ
Q: SORT_RO 和 SORT 有什么区别? A: SORTRO 是只读命令,不支持 STORE;SORT 支持 STORE 将结果存入新 key。SORTRO 可在只读副本上执行。