博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis的sort命令
阅读量:6651 次
发布时间:2019-06-25

本文共 1075 字,大约阅读时间需要 3 分钟。

hot3.png

概要

    在现实场景中,很多功能都是需要排序的,而且排序的字段并非有序集合的分数,那么redis提供了强大而又复杂的sort命令来帮我们解决问题。

命令

    sort key [by key] [desc|asc] [get key [get key ...]] [store key]

    数据准备(列表+散列):

    092618_ysmA_3049601.png    

    092631_eCVP_3049601.png

    092641_sKyl_3049601.png

    sort tag:redis:article

    092730_b6ik_3049601.png

    sort tag:redis:article desc

    092811_Mtef_3049601.png

    sort tag:redis:article by article:*->time asc

    *符号代表占位符,和struts2 action写法中的占位符一样理解,在这里代表tag:redis:article列表中的值,也就是文章的ID

    092926_kyl5_3049601.png

    sort tag:redis:article by article:*->time desc

    092945_oP85_3049601.png

    sort tag:redis:article by article:*->time desc get article:*->title get article:*->time

    093218_fHGv_3049601.png

    如果要把文章ID也返回,可以在命令结尾加get #

    sort tag:redis:article by article:*->time desc get article:*->title get article:*->time get #

    093318_qgOR_3049601.png

    sort tag:redis:article by article:*->time desc get article:*->title get article:*->time get # store article:mylist

    093556_iWP8_3049601.png

    如果此时再用sort 命令得到所有缓存的结果,会报一个错误,因为redis会尝试将字符串转换为数字进行排序在输出,所以需要在sort命令后面加上alpha参数

    093658_9oTz_3049601.png

    然后这样并不是我们需要的顺序,所以采用列表原生命令读取列表

    lrange article:mylist 0 -1

    0是列表左边第一个元素,-1是列表右边第一个元素

    093758_jAKo_3049601.png

实践

    可以看出sort命令提供了非常丰富的功能,使用它可以达到类似关系数据库的关联操作,非常方面

注意

    功能是很强大了,但常常因为使用不当,导致redis性能急剧下滑,所以在使用时应当注意一下三点:

    1.尽可能的减少带排序键中的元素

    2.尽可能减少输出的元素,可以使用Limit

    3.将排序后的结果使用store命令缓存起来,并设置过期时间

 

转载于:https://my.oschina.net/u/3049601/blog/1358780

你可能感兴趣的文章
Mac Pro 编译安装 PHP 5.6.21 及 问题汇总
查看>>
centos7下部署iptables环境纪录(关闭默认的firewalle)
查看>>
Swift计算属性
查看>>
JAVA常见异常解析
查看>>
RSA生成签名和验证签名
查看>>
Android NFC近场通信02----读写卡的准备工作
查看>>
比MD5 和HMAC还要安全的加密 - MD5 加时间戳
查看>>
elasticsearch集群介绍及优化【转】
查看>>
优化数据页面(22)——n:n的数据关系
查看>>
js--11对象的创建方式
查看>>
压缩&&解压命令汇总
查看>>
原来,多年以来,我一直是个curl/CRUD程序员
查看>>
嵌入式开发之hi3519---i2c EEPROM
查看>>
ZT:没有谁的成功是横空出世
查看>>
CocoaPods iOS 开源库管理
查看>>
java android使用Gson解析泛型json数据
查看>>
解决华为手机图片选择无效及产生的open failed: EACCES (Permission denied)错误
查看>>
如何入门深度学习?
查看>>
智力题及答案
查看>>
Jetty
查看>>