设为首页 收藏本站
查看: 957|回复: 0

[经验分享] Redis 排序命令

[复制链接]

尚未签到

发表于 2016-12-19 10:50:55 | 显示全部楼层 |阅读模式
  SORT 命令
  SORT key [ALPHA] [BY sortkey] [DESC] [LIMIT offset count] [GET keys] [STORE newKey]
  sort 可以有set ,list ,zset 进行排序,默认按集合的元素值转换为数值进行从小到大排序。
  参数:[ALPHA] :如果元素值不是数据,则可以指定ALPHA参数,按照字典顺序排序。
  [DESC]:默认sort是从小到大排序,可以指定DESC 为降序
  [LIMIT offset count]: 从排序结果中取序号为offset开始的count个元素
  [STORE newKey] :把排序结果存储在一个List变量中

localhost:6379> sadd myset 1 3 5 6 7 0 9
(integer) 7
localhost:6379> sort myset
1) "0"
2) "1"
3) "3"
4) "5"
5) "6"
6) "7"
7) "9"
localhost:6379> sadd netsites 163 sohu yahoo baidu 12306
(integer) 5
localhost:6379> sort netsites alpha
1) "12306"
2) "163"
3) "baidu"
4) "sohu"
5) "yahoo"
localhost:6379> sort netsites alpha limit 0 3
1) "12306"
2) "163"
3) "baidu"
localhost:6379> sort netsites alpha limit 0 3 desc
1) "yahoo"
2) "sohu"
3) "baidu"
localhost:6379> sort netsites alpha limit 0 3 desc store sort:netsites
(integer) 3
localhost:6379> lrange sort:netsites 0 -1
1) "yahoo"
2) "sohu"
3) "baidu"

  [BY sortkey] 参数说明:
  [GET keys]参数说明:

localhost:6379> set students:name:1 tom //ID=1的学生名字
OK
localhost:6379> set students:name:2 carry//ID=2的学生名字
OK
localhost:6379> set students:name:3 jack//ID=3的学生分名字
OK
localhost:6379> set students:name:4 lisa//ID=4的学生分名字

localhost:6379> set students:score:1 98 //ID=1的学生分值98
OK
localhost:6379> set students:score:2 39//ID=2的学生分值39
OK
localhost:6379> set students:score:3 80//ID=3的学生分值80
OK
localhost:6379> set students:score:4 58//ID=4的学生分值58
OK
localhost:6379> lpush students 1 2 3 4 //学生id存入list
(integer) 4
localhost:6379> sort students //按照集合中元素值(id)排序的结果
1) "1"
2) "2"
3) "3"
4) "4"
localhost:6379> sort students by students:score:* //关联分值的排序结果 用studnets中的元素值替换students:score:*中的*而生成的key 的值进行排序。
1) "2"                                           //替换后排序的元为:students:score:1,students:score:2,students:score:3,students:score:4
2) "4"//对这4个key进行排序,依据该排序结果输出对应的集合元素顺序
3) "3"
4) "1"
localhost:6379>  sort students by students:score:*  get students:name:* //按照集合排序结果中的元素值替换 get之后的key的中的*而生成的实际key来获取值
1) "carry"
2) "lisa"
3) "jack"
4) "tom"
//sort students by students:score:* 排序后结果为 2,4,3,1 替换get 之后的key而生成 :
students:name:2
students:name:4
students:name:3
students:name:1
以上key对应的值顺序为:
1) "carry"
2) "lisa"
3) "jack"
4) "tom"


localhost:6379> hmset student:1 name lining age 32 sex boy score 76
OK
localhost:6379> hmset student:2 name lisi age 21  sex girl  score 87
OK
localhost:6379> hmset student:7 name tom age 25  sex boy score 34
OK
localhost:6379> sadd studentIds 1 2 7
(integer) 3
localhost:6379> sort studentIds
1) "1"
2) "2"
3) "7"
localhost:6379> sort studentIds by student:*->score////关联分值的排序结果  用studentIds中的元素值替换student:*->score,而生成:student:1->score,student:2->score,student:7->score,表明是按散列表的score值时行排序,依据该排序结果输出对应的集合元素顺序
1) "7"
2) "1"
3) "2"

localhost:6379> sort studentIds by student:*->score get student:*->name
1) "tom"
2) "lining"
3) "lisi"
//可以通过get获取多个值
localhost:6379> sort studentIds by student:*->score get student:*->name get student:*->age get student:*->sex
1) "tom"
2) "25"
3) "boy"
4) "lining"
5) "32"
6) "boy"
7) "lisi"
8) "21"
9) "girl"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-316352-1-1.html 上篇帖子: redis 命令(1) 下篇帖子: redis指令大全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表