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 ...
随机推荐
- Linux学习一周初体验
Linux一周初体验一.准备工欲善其事,必先利其器--虚拟机+Redhat7.0构成学习的环境.安装有条不紊.按部就班.......(涉及到的KVM.VNC.Root密码重置等内容,之后再详细了解)注 ...
- 用面对对象方式定tab标签
一些公共的底层的JS方法 var GLOBAL = {}; GLOBAL.namespace = function (str) { var arr = str.split('.'), o = GLOB ...
- mac OS(OS X)的OI编译环境配置指南
编译环境:gdb+Atom 如何安装gdb: http://logic0.blog.163.com/blog/static/1889281462014183271283/ Atom下载地址: ht ...
- ios动态添加属性的几种方法
http://blog.csdn.net/shengyumojian/article/details/44919695 在ios运行过程中,有几种方式能够动态的添加属性. 1-通过runtime动态关 ...
- 简单说说Tk和Tcl
开园第一个博客,简单说说Tk和Tcl. 我接触Tk和Tcl是在学习Python Tkinter时候,创建Tk对象,下面言归正传: Tcl:工具命令语言,英文全称为Tool Command Langua ...
- glade2支持C++代码的输出(2)
今天更新了一个BaseObject的代码:BaseObject.002.zip 同时将glade2生成C++代码的代码进行了调整,基于2.12.2的补丁为:cpp_out_2.patch.tar.xz ...
- HashMap与ArrayList互相嵌套的代码实现
HashMap嵌套ArrayList的代码实现 结果要求为 三国演义 吕布 周瑜笑傲江湖 令狐冲 林平之神雕侠侣 ...
- cpg数据库处理_找到未提取的pdf
cpg数据库处理_找到未提取的pdf,存放于文件夹Chinese_undeal_pdfs move_unextracted_pdfs.py # -*- coding: utf-8 -*- " ...
- Windows 无法自动将 IP 协议堆栈绑定到网络适配器。解
Windows 无法自动将 IP 协议堆栈绑定到网络适配器.解 昨天断网了,所以把珍藏已久的无线网卡拿出来蹭网.我系统是Windows 7 但是装上去东显示已启用,就是用不了,用windows诊断是 ...
- JavaScript----遇到的问题
<script type="text/javascript" src="a.js"> alert('dd'); </script> 存在 ...