Redis学习笔记七:独立功能之排序
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
多个选项的执行顺序
选项的执行顺序
- 排序
- limit
- get
- store
- 向客户端返回结果集
选项的摆放顺序
除了 get 选项外,改变选项的摆放顺序不会影响 sort 命令执行这些选项的顺序。在调整 sort 命令各个选项摆放顺序时,必须小心处理 get 选项。
Redis学习笔记七:独立功能之排序的更多相关文章
- Redis学习笔记七:主从集群
单机,单节点,单实例的Redis会有什么问题呢? 容易导致单点故障,那么如何解决呢? 可以通过主备方式 同时可以实现读写分离 这里的每个节点是全量的,镜像的. 单节点的容量有限而且单点的压力比较大,如 ...
- Redis学习笔记八:集群模式
作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记之ABC
Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- redis 学习笔记-cluster集群搭建
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...
- Redis学习笔记4-Redis配置具体解释
在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...
- go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...
随机推荐
- JavaWeb学习总结-06 Listener 学习和使用
一 Listener 当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件:如Web应用被启动.Web应用被停止.用户session开始.用户session结束.用户请求到达等,可以用 ...
- swfUpload 上传图片
前端: <script src="~/Scripts/swfupload/swfupload.js"></script> <script src=&q ...
- Random类
Random类是随机数产生类,可以指定一个随机数的范围,然后任意产生在此范围中的数字. //================================================= // F ...
- Android学习笔记——MixLayout
该工程的功能是实现LinearLayout+TableLayout 以下代码是MainActivity.java中的代码 package com.example.mixlayout; import a ...
- Servlet之Filter详解
参考文献:http://www.cnblogs.com/zlbx/p/4888312.html Filter,过滤器,顾名思义,即是对数据等的过滤,预处理过程.为什么要引入过滤器呢?在平常访问网站的时 ...
- JS中call和apply
作用: 替换当前对象的方法中的this. 理解: call和apply是为了动态改变this出现的,当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作 ...
- apache struts 2 任意代码执行漏洞
漏洞检测地址:http://0day.websaas.cn 漏洞利用工具,如下: 漏洞利用,如下: step1 step2 step3 提权思路,如下: 1.开启虚拟终端,执行命令,但是,提示“连接被 ...
- 在github上创建新分支
在github上创建仓库: Create a new repository on the command line touch README.md git init git add README.md ...
- Linux 高精確的時序(sleep, usleep,nanosleep) from:http://blog.sina.com.cn/s/blog_533ab41c0100htae.html
Linux 高精確的時序(sleep, usleep,nanosleep) (2010-04-14 17:18:26) 转载▼ 标签: 杂谈 分类: linux 首先, 我会说不保证你在使用者模式 ( ...
- html css 网络 页面布局 颜色 参考 拾取器网址
http://blog.163.com/wujinhongisme@126/blog/static/3613698020095115919389/ ========================== ...