Redis5排序

1:对集合类型的元素进行排序

元素的值必须都是数字和浮点类型

sort temp

 

在对有序集合类型排序时会忽略元素的分数,只针对元素自身的值进行排序

除了可以排列数字外,SORT命令还可以通过ALPHA参数实现按照字典顺序排列非数字元素

 sort abc  ALPHA

 

即可对字母和数字混合的进行排序   数字>小写>大写

 

2:排序默认的是从小到大, DESC 参数 即可变成从大到小

 sort abc  ALPHA DESC

 

3:分页 和mysql 是一样的

 sort abc  ALPHA DESC LIMIT 0 2

 

 

如果键tag:php集合下存的是属于标签PHP的文章的ID,现在想根据这些文章的创建时间排序怎么办?

 

by参数

用法

sort tag:php by post:*->created_at desc

 

tag:php 键存的都是文章ID

 

post:* 这些都是Hash类型里头都有字段created_by

 

 

 

 除了hash类型指定字段也可以直接就是string 类型

sort tag:php by post_created_at:* desc

 

 

当两个键的值是一样的时候,就会比较两个键的大小

只能有一个by参数

 

如果我排序的时候我还想顺便获取文章的标题

GET 参数

sort tag:php by post:*->created_at desc get post:*->title

 

可以get 多个参数,如果参数不存在会存NULL

如果想要顺便返回文章的ID get # 就可以了

sort tag:php by post:*->created_at desc get post:*->title  get #

 

这个也是带分页功能的

sort tag:php by post:*->created_at desc get post:*->title  get # limit 0 2

 

 

STORE 参数

如果想要把排序的结果保存到某个键中, 排序是很耗资源的

sort tag:php by post:*->created_at desc get post:*->title  get # store result.store

 

result.store键是一个list 类型,如果存在键直接覆盖


性能问题:
Sort 是redis中最强大复杂的命令之一
(1)尽可能减少待排序键中元素的数量(使N尽可能小)。
(2)使用LIMIT参数只获取需要的数据(使M尽可能小)。
(3)如果要排序的数据数量较大,尽可能使用STORE参数将结果缓存。

 

 
  • 你总不小心把倩影靠在月亮上面
  • 万顷月光舞动着你优美的梦幻

!!!

posted @ 2019-10-07 22:29  万隆  阅读(384)  评论(0编辑  收藏  举报