`

set命令主意事项 sort对集合的排序简介

 
阅读更多

 

 

1 set注意事项:

 

set 命令权限很大,如果健已经存在,不管对应值是什么类型,

set 命令都会把对应的值转成string类型并赋值 而讲原来的value数据覆盖掉

 

 

2  sort对集合排序

 

 

 

 

 

sort命令可以对列表类型,集合类型和有序集合类型键进行排序。排序的时候会把集合中的数据转变为double类型在进行排序
sort key [desc]

by 参考键(参考键可以是字符串类型或者是hash类型的某个字段,hash类型的格式为:键名->字段名)
如果参考键中不带*号则不排序
如果某个元素的参考键不存在,则默认参考键的值为0

扩展 get参数
get参数的规则和by参数的规则一样
get # (返回元素本身的值)
扩展 store参数
使用store 参数可以把sort的排序结果保存到指定的键中
性能优化
1:尽可能减少待排序键中元素的数量
2:使用limit参数只获取需要的数据
3:如果要排序的数据数量很大,尽可能使用store参数将结果缓存。

lpush mylist 1 3 2 
sort mylist 正序排列     排序后仅仅将排序结果输出 原mylist数据依旧是1 3 2   
sort mylist desc 倒序排列
sort mylist limit 0 2  选择排序后的前两个
sort mylist store resultlist  将排序后的结果存储在resultlist中
sort mylist alpha  根据字典顺序来排序 不需要转变成为double类型  适合于字符串类型

 

 
测试数据

lpush sortbylist 2 1 3  编号 2 1 3 三个人
set itemscore:1 50      编号1得分50
set itemscore:2 100     编号2得分100
set itemscore:3 -10     编号3得分-10

sort sortbylist by itemscore:* desc   ????表示将sortbylist的数据放在*内后 以itemscore:*作为Key来对对应的value(分数)进行排序
3
1
2


lpush sortbylist 4
set itemscore:4 50
sort sortbylist by itemscore:* desc

lpush sortbylist 5
sort sortbylist by itemscore:* desc







lpush tag:posts 1 2 3 4   给文章排序
hset post:1 time 1352619200 文章1最后修改时间
hset post:2 time 1352619600 文章2最后修改时间
hset post:3 time 1352620100 文章3最后修改时间
hset post:4 time 1352620000 文章4最后修改时间

sort posts by post:*->time 针对每篇文章排序 后输出排序后的文章ID


hset post:1 title one 添加文章1标题
hset post:2 title two 添加文章2标题
hset post:3 title three 添加文章3标题
hset post:4 title four 添加文章4标题

 
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics