sort 命令可以对列表键、集合键或有序集合键的值进行排序。sort 命令并不修改数据库值,只是输出有序。

127.0.0.1:6379> rpush numbers 9 8 7 6 1 2 3 4
(integer) 8
127.0.0.1:6379> lrange numbers 0 -1
1) "9"
2) "8"
3) "7"
4) "6"
5) "1"
6) "2"
7) "3"
8) "4"
127.0.0.1:6379> sort numbers
1) "1"
2) "2"
3) "3"
4) "4"
5) "6"
6) "7"
7) "8"
8) "9"
127.0.0.1:6379> lrange numbers 0 -1
1) "9"
2) "8"
3) "7"
4) "6"
5) "1"
6) "2"
7) "3"
8) "4"

sort 选项

by 选项,根据权重进行排序:

127.0.0.1:6379> zadd test-result 3.0 jack 3.5 peter 4.0 tom
(integer) 3
127.0.0.1:6379> zrange test-result 0 -1
1) "jack"
2) "peter"
3) "tom"
127.0.0.1:6379> mset peter_number 1 tom_number 2 jack_number 3
OK
127.0.0.1:6379> sort test-result by *_number
1) "peter"
2) "tom"
3) "jack"

alpha 选项,对包含字符串值的键进行排序

127.0.0.1:6379> sadd fruits apple banana cherry
(integer) 3
127.0.0.1:6379> smembers fruits
1) "cherry"
2) "apple"
3) "banana"
127.0.0.1:6379> sort fruits alpha
1) "apple"
2) "banana"
3) "cherry"

asc 选项和 desc 选项

默认情况下 sort 命令执行升序排序,以下命令是等价的:

sort numbers
sort numbers asc

如果想使用降序排序:

sort numbers desc

带有 alpha 选项的 by 选项的排序

by 选项默认假设权重保存的值为数字值,如果权重键保存的是字符串的值的话,需要在使用 by 选项的同时,配合使用 alpha 选项。

127.0.0.1:6379> sadd fruits apple banana cherry
127.0.0.1:6379> mset apple-id "fruit-25" banana-id "fruit-79" cherry-id "fruit-13"
OK
127.0.0.1:6379> sort fruits by *-id alpha
1) "cherry"
2) "apple"
3) "banana"

limit 选项

默认 sort 命令总会将排序后的所有元素都返回给客户端,但是通过 limit 选项可以让 sort 命令只返回其中一部分已排序的元素。

格式:limit < offset > < count >

127.0.0.1:6379> sort fruits alpha limit 0 2
1) "apple"
2) "banana"

get 选项

默认情况 sort 命令在对键进行排序后,总是返回包含键本身所包含的元素。通过 get 选项可以让 sort 命令在对键值进行排序后,根据被排序和 get 选项指定的模式,查找并返回某些键的值。

127.0.0.1:6379> sadd students "peter" "jack" "tom"
(integer) 3
127.0.0.1:6379> sort students alpha
1) "jack"
2) "peter"
3) "tom"
127.0.0.1:6379> set peter-name "Peter White"
OK
127.0.0.1:6379> set jack-name "Jack Snow"
OK
127.0.0.1:6379> set tom-name "Tom Smith"
OK
127.0.0.1:6379> sort students alpha get *-name
1) "Jack Snow"
2) "Peter White"
3) "Tom Smith"

store 选项

默认情况 store 命令只向客户端返回排序的结果,而不保存结果。通过 store 选项,可以将排序结果保存在指定的键里,并在有需要时重用这个排序结果:

127.0.0.1:6379> sort students alpha store stored_students
(integer) 3

多个选项的执行顺序

选项的执行顺序

  1. 排序
  2. limit
  3. get
  4. store
  5. 向客户端返回结果集

选项的摆放顺序

除了 get 选项外,改变选项的摆放顺序不会影响 sort 命令执行这些选项的顺序。在调整 sort 命令各个选项摆放顺序时,必须小心处理 get 选项。

Redis学习笔记七:独立功能之排序的更多相关文章

  1. Redis学习笔记七:主从集群

    单机,单节点,单实例的Redis会有什么问题呢? 容易导致单点故障,那么如何解决呢? 可以通过主备方式 同时可以实现读写分离 这里的每个节点是全量的,镜像的. 单节点的容量有限而且单点的压力比较大,如 ...

  2. Redis学习笔记八:集群模式

    作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...

  3. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  4. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  5. Redis学习笔记之ABC

    Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...

  6. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  7. redis 学习笔记-cluster集群搭建

    一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...

  8. Redis学习笔记4-Redis配置具体解释

    在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...

  9. go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)

    目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...

随机推荐

  1. Linux下安装部署Java

    Java安装6小部(适合新手) 1.下载软件包 # wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x ...

  2. spring---aop 配置

    第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型(@Befor ...

  3. 【转】Yeoman自动构建 Angularjs 项目

    Yeoman是什么? Yeoman按照官方说法,它不只是一个工具,还是一个工作流.它其实包括了三个部分yo.grunt.bower,分别用于项目的启动.文件操作.包管理. Yo: Yo是一个项目初始化 ...

  4. ASP------<input type="file"/>上传文件

    界面代码(注意:runat="Server"和input file中name一定要有) <html xmlns="http://www.w3.org/1999/xh ...

  5. WinForm------TreeList属性介绍

    转载: http://blog.csdn.net/fwj380891124/article/details/6888077 treeList1.LookAndFeel.UseWindowsXPThem ...

  6. Java数据结构——有序链表

    //================================================= // File Name : SortedList_demo //--------------- ...

  7. ubuntu亮度调节失效

    ctrl+alt+T 打开终端 输入下面的指令 sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf 2 再输入下面的指令: sudo gedit / ...

  8. JavaWeb学习笔记——开发动态WEB资源(五)servlet身份验证

    本工程的功能是实现Javaweb的servlet身份验证 一下是login.html文件中的代码 <!DOCTYPE html> <html> <head> < ...

  9. Interesting things in Unity 4.5 you probably didn't know about

    http://va.lent.in/interesting-things-in-unity-4-5-you-probably-didnt-know-about/

  10. 取出return array() 数组内容

    d.php文件 return array( "0" => 内容一, "1" => 内容二, "2" => 内容三, &qu ...