一. sort命令

  1. sort命令可以对list排序
  2. sort命令把字段转先换为double类型在进行比较
  3. sort排序list
127.0.0.1:6379> lrange list2 0 -1
1) "f"
2) "c"
3) "e"
4) "a"
5) "b"
127.0.0.1:6379> sort list2
(error) ERR One or more scores canot be converted into double
127.0.0.1:6379> sort list2 alpha # sort默认至排序double,排序字母需要生命alpha
1) "a"
2) "b"
3) "c"
4) "e"
5) "f"
127.0.0.1:6379> lrange shuzi 0 -1
1) "2"
2) "7"
3) "21"
4) "4"
5) "3"
6) "1"
127.0.0.1:6379> sort shuzi asc
1) "1"
2) "2"
3) "3"
4) "4"
5) "7"
6) "21"
127.0.0.1:6379> sort shuzi limit 0 2 #从0开始取2个元素
1) "1"
2) "2"
127.0.0.1:6379> lpush list1 4 2 3 1
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "3"
3) "2"
4) "4"
127.0.0.1:6379> sort list1 store list2 #sort不会改变原先list的元素位置
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "3"
3) "2"
4) "4"
127.0.0.1:6379> lrange list2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"

二. string作参考键的排序

zset用每个元素的分数进行排序,而排序list,就用list中每个元素对应的参考键的值作为分数进行排序

[注]:list一般存储的元素是id,id排序没有意义,如下id对应的score排序才有意义,

sort list by key 转化为sql==> select id from list order by key

127.0.0.1:6379> lpush list1 3 2 4 1
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "4"
3) "2"
4) "3"
127.0.0.1:6379> set score_1 90
127.0.0.1:6379> set score_2 85
127.0.0.1:6379> set score_3 -10
127.0.0.1:6379> sort list1 by score_* # 不存在的参考件对应的id默认值为0
1) "3"
2) "4"
3) "2"
4) "1"

三. 用hash作参考键

127.0.0.1:6379> hset post_1 title one
127.0.0.1:6379> hset post_1 modifytime 123
127.0.0.1:6379> hset post_2 title two
127.0.0.1:6379> hset post_2 modifytime 234
127.0.0.1:6379> hset post_3 title three
127.0.0.1:6379> hset post_3 modifytime 99
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "4"
3) "2"
4) "3"
127.0.0.1:6379> sort list1 by post_*->modifytime #用post_*的modufytime作为参考键
1) "4" #0
2) "3" #99
3) "1" #123
4) "2" #234
127.0.0.1:6379> sort list1 by post_*->modifytime get # get post_*->title # get表示获取的字段,get #获取list1的元素,
# select id,title order by modifytime
1) "4"
2) (nil)
3) "3"
4) "three"
5) "1"
6) "one"
7) "2"
8) "two"

4. 对list进行sort的更多相关文章

  1. [算法]——归并排序(Merge Sort)

    归并排序(Merge Sort)与快速排序思想类似:将待排序数据分成两部分,继续将两个子部分进行递归的归并排序:然后将已经有序的两个子部分进行合并,最终完成排序.其时间复杂度与快速排序均为O(nlog ...

  2. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  3. shell之sort命令

    1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...

  4. 详细解说 STL 排序(Sort)

    0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...

  5. SQL Tuning 基础概述06 - 表的关联方式:Nested Loops Join,Merge Sort Join & Hash Join

    nested loops join(嵌套循环)   驱动表返回几条结果集,被驱动表访问多少次,有驱动顺序,无须排序,无任何限制. 驱动表限制条件有索引,被驱动表连接条件有索引. hints:use_n ...

  6. js sort() reverse()

    数组中存在的两个方法:sort()和reverse() 直接用sort(),如下: ,,,,,,,,,,,]; console.log(array.sort());ps:[0, 1, 2, 2, 29 ...

  7. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  8. 2.sort 排序命令讲解

    sort命令  sort:文本排序,仅仅是对显示文件的排序,而不影响源文件的顺序,是根据ASSII码     的字符升序来排列的.        -n:安装数值大小从小到大排列 ,默认是升序.     ...

  9. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  10. 快速排序算法 quick sort的理解

    最近做了一下算法的一些练习,感觉基础薄弱了,只是用一些已经有的东西来完成练习如quickSort(c++使用的时候是sort(起始位置,终止位置,比较函数),这个需要加头文件),但是不知道怎么推出来, ...

随机推荐

  1. Jpush教材

    http://docs.jpush.cn/pages/viewpage.action?pageId=3309574

  2. uestc1888 Birthday Party    组合数学,乘法原理

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=25539#problem/G 题目意思: 有n个人,每个人有一个礼物,每个人能拿 ...

  3. phpwind8.7升级9.0.1过程(四)20130207升级到20141228

    每一次升级前都要注意备份 1.网站根目录的所有文件 2.网站的数据库 根据phpwind官方教程 更新到20130702版本成功并备份 更新到20140428版本成功并备份 20141228版本的更新 ...

  4. kuangbin_ShortPath H (POJ 3660)

    本来想自己写个bfs让他顺着胜负边爬 走到拐弯处就判定无法确定次序 然后我发现有多余的边并不会自己省略掉 要写个O(n^3)的删掉多余边这都不如Floyd了 看奚政学长写的是拓扑序也能解 然后在理解看 ...

  5. exceptions-in-java

    http://www.javaworld.com/article/2076721/core-java/designing-with-exceptions.html http://www.javawor ...

  6. java .net compartion

    1, http://www-01.ibm.com/software/smb/na/J2EE_vs_NET_History_and_Comparison.pdf http://stackoverflow ...

  7. pyzmq missing when running ipython notebook

    Q: I can run iPython, but when I try to initiate a notebook I get the following error: ~ ipython not ...

  8. HTTP头详解

    HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Chars ...

  9. ruby杂记

    ruby基本类中的方法:puts Object.private_instance_methods

  10. OpenJudge计算概论-求分数序列和

    /*======================================================================== 求分数序列和 总时间限制: 1000ms 内存限制 ...