四、redis排序

sort命令

用于对列表,集合,有序集合排序。默认asc升序排列。desc降序。
列表排序:
这里写图片描述
集合排序:
这里写图片描述
有序集合:
有序集合排序比较的是元素本身而不是分数。
这里写图片描述

通过alpha对非数字按字典排序

这里写图片描述

分页显示

limit offset count
表示跳过前面offset个元素并获取之后count个元素。
127.0.0.1:6379> sort lst2 alpha
1) “a”
2) “A”
3) “B”
4) “c”
5) “d”
127.0.0.1:6379> sort lst2 alpha limit 1 3
1) “A”
2) “B”
3) “c”
127.0.0.1:6379>

by

语法:by 参考键
参考键可以是字符串类型键或者散列键的某个字段。
散列类型:
by 键->字段,指定参与排序的字段。
占位符*
by key:*->字段 desc
表示用字段的值替换掉参考键中第一个*并用该值进行排序。星号也可以认为是模糊匹配。key:*将匹配到key:a,key:1等类似的键,再获取到这些键对应的字段的值进行排序。
字符串类型:
by 参考键:*
字符串存储的不是对象,没有字段,因此不必用->指定字段。同样星号也是模糊匹配。如下图,实际排序值用的是icore:1、icore:2,icore:3的值,而不是ss1列表内的元素。
这里写图片描述

如果by参数指定元素的值有相同的情况。那么会回过头来比较集合内元素大小,决定排列顺序。
这里写图片描述

get

指定排序后返回的内容。支持字符串和散列。
示例:

sort classroom:1:students by stu:*->score desc get stu:*->name get stu:*->stuno get #

说明:对班级id为1学生按照考试分数高低进行排序,返回学生的姓名、学号stuno,get # 返回classroom:1:students键对应的值,官方解释为get # 返回元素本身的值,其实就是sort key by …中key的值。

store

保存排序结果,以列表形式缓存。可结合expire来设置结果缓存过期时间。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值