4. 对list进行sort
一. sort命令
- sort命令可以对list排序
- sort命令把字段转先换为double类型在进行比较
- 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的更多相关文章
- [算法]——归并排序(Merge Sort)
归并排序(Merge Sort)与快速排序思想类似:将待排序数据分成两部分,继续将两个子部分进行递归的归并排序:然后将已经有序的两个子部分进行合并,最终完成排序.其时间复杂度与快速排序均为O(nlog ...
- [算法]——快速排序(Quick Sort)
顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...
- shell之sort命令
1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- SQL Tuning 基础概述06 - 表的关联方式:Nested Loops Join,Merge Sort Join & Hash Join
nested loops join(嵌套循环) 驱动表返回几条结果集,被驱动表访问多少次,有驱动顺序,无须排序,无任何限制. 驱动表限制条件有索引,被驱动表连接条件有索引. hints:use_n ...
- js sort() reverse()
数组中存在的两个方法:sort()和reverse() 直接用sort(),如下: ,,,,,,,,,,,]; console.log(array.sort());ps:[0, 1, 2, 2, 29 ...
- Java中的经典算法之冒泡排序(Bubble Sort)
Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...
- 2.sort 排序命令讲解
sort命令 sort:文本排序,仅仅是对显示文件的排序,而不影响源文件的顺序,是根据ASSII码 的字符升序来排列的. -n:安装数值大小从小到大排列 ,默认是升序. ...
- 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od
awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk '' | output 1.首先要知道形式 awk 'command' fi ...
- 快速排序算法 quick sort的理解
最近做了一下算法的一些练习,感觉基础薄弱了,只是用一些已经有的东西来完成练习如quickSort(c++使用的时候是sort(起始位置,终止位置,比较函数),这个需要加头文件),但是不知道怎么推出来, ...
随机推荐
- PHP实例开发(2)PHP通过mail()或Socket发邮件
PHP通过mail()或Socket发邮件 1.PHP中发送邮件的方法 PHP发送邮件是“非常的简单” 因为他提供了mail()函数直接发送,但这也继 register globals 成为了对初学者 ...
- MongoDB安装、配置和基本使用
一.搭建MongoDB的yum源 如果安装epel扩展源,可以安装MongoDB2.4版本 如要安装3.0版本,需要自己配置yum源,官方提供的源只支持64位系统 # vim /etc/yum.rep ...
- Codeforces378 D Kostya the Sculptor(贪心)(逻辑)
Kostya the Sculptor time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- POJ Girls and Boys (最大独立点集)
Girls and Boys Time Limit: 5000MS Memo ...
- 不带www的域名跳转至www域名
由于我网站是架设在Linux的VPS上的,所以我用例如下方法 .htaccess文件 首先要开启Apache服务器的.htaccess功能,我在Apache安全配置中有分享过:开启之后新建一个.hta ...
- react 不能往组件中传入属性的值为 undefined
在使用 andt design 的时候遇到个需求,需要清除 Select 组件选中后的值,让它变成什么都没选中,显示 placeholder 刚开始以为设置为 null 即可,结果发现设置为 null ...
- CSS3教程:pointer-events属性值详解 阻止穿透点击
转:http://www.poluoluo.com/jzxy/201109/142876.html 在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样 ...
- kuangbin_MST A (POJ 1251)
模板题 Kruskal直接过 调试时候居然在sort(edge + 1, edge + 1 + m)上浪费好多时间... 不过本着ACMer的心态自然要测试一下两种方法分别的速度 Kruskal : ...
- jquery轻松操作CSS样式
$(this).click(function(){ if($(this).hasClass(“zxx_fri_on”)){ $(this).removeClass(“zxx_fri_on”); ...
- NetStatusEvent info对象的状态或错误情况的属性
代码属性 级别属性 意义 "NetStream.Buffer.Empty" "status" 数据的接收速度不足以填充缓冲区.数据流将在缓冲区重新填充前中 ...