首页/数据/数据库速查/SORT 排序(BY/GET/LIMIT 模式)
Redis 命令96 条

SORT 排序(BY/GET/LIMIT 模式)

对 List/Set/ZSet 排序:数值默认、字符串要 ALPHA;BY 可按外部键权重排序、GET 取外部字段拼结果、LIMIT 分页;SORT_RO 是只读变体。

数据库速查数据更新于 2026-10-12

排序与外部取值

排序与外部取值
RPUSH nums 3 1 2
SORT nums                     # 1 2 3
SORT nums DESC LIMIT 0 2      # 3 2
SADD tags a c b
SORT tags ALPHA               # a b c
# BY 按外部权重排、GET 取字段(* 会被替换成元素)
SORT shop:ids BY shop:*:price GET shop:*:name GET '#'
SORT shop:ids BY nosort GET shop:*:name    # 跳过排序,只做映射
默认按数值(double)排序
ALPHA字符串排序必加
BY/GET模式串里 * 替换为元素值;GET '#' 返回元素本身
SORT_RO无 STORE 的只读形式(可在副本上执行)
SORT 复杂度 O(N log N),大集合会阻塞实例;热点场景先把排序结果缓存到 ZSet/应用层。

易错点

  • 字符串集合忘记 ALPHA:直接报「One or more scores can't be converted into double」
  • BY/GET 的模式依赖外部键存在:缺失键会被当成 0/nil,先对数据做校验

数据来源与参考

  • Redis 官方文档: SORT
  • Redis 官方文档: SORT_RO

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌