专题功能 - 排序

优质
小牛编辑
138浏览
2023-12-01

redis支持对list,set和sorted set元素的排序。排序命令是sort 完整的命令格式如下:

  1. SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey]

复杂度为O(N+M*log(M))。(N是集合大小,M 为返回元素的数量)

说明:

  1. [ASC|DESC] [ALPHA]: sort默认的排序方式(asc)是从小到大排的,当然也可以按照逆序或者按字符顺序排。
  2. [BY pattern] : 除了可以按集合元素自身值排序外,还可以将集合元素内容按照给定pattern组合成新的key,并按照新key中对应的内容进行排序。例如:
  3. 127.0.0.1:6379sort watch:leto by severtity:* desc
  4. [GET pattern]:可以通过get选项去获取指定pattern作为新key对应的值,get选项可以有多个。例如:127.0.0.1:6379sort watch:leto by severtity: get severtity:。 对于Hash的引用,采用->,例如:sort watch:leto get # get bug:*->priority。
  5. [LIMIT start count] 限定返回结果的数量。
  6. [STORE dstkey] 把排序结果缓存起来

排序 - 图1

排序 - 图2