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标题