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(起始位置,终止位置,比较函数),这个需要加头文件),但是不知道怎么推出来, ...
随机推荐
- C陷阱与缺陷 1
1,符号之间的空白被忽略 符号中间不能嵌入空白 2,词法分析中的贪心法 a---b 和 a-- -b相同 和 a- --b不同 1 a=b/*p //根据贪心法 /*被解释成 注释符,便不再往下读,直 ...
- 数据库必会必知 之 SQL四种语言:DDL DML DCL TCL(转)
今天群里面讨论,DDL 还是 DML,我这种小白还是总结下他们的区别吧. 1. DDL – Data Definition Language 数据库定义语言:定义数据库的结构. 其主要命令有CREAT ...
- Java—面向对象—权限修饰符及思维导图
课上老师所讲实例整理: package org.hanqi.pn0120; //汽车 public class Car { //颜色 private String yanse; //品牌 privat ...
- 越狱Season 1-Episode 4: Cute Poison
Season 1, Episode 4: Cute Poison [Previously on Prison Break] previously: 以前地 前情提要 -Burrows: I didn' ...
- as3 中 textfiled的htmltext 的常用属性
http://blog.sina.com.cn/s/blog_6d193c030100x6ud.html <a> 超链接标签 属性:href: 链接地址 target: 目标窗口 可取值为 ...
- 论文笔记之:Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grained Recognition
Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grain ...
- MySQL删除重复记录只保留一条
删除表中重复记录,只保留一条: delete from 表名 where 字段ID in (select * from (select max(字段ID) from 表名 group by 重复的字段 ...
- #你好Unity3D#Hierarchy视图监听gameObject点击事件
今天无意间又找到了个好方法 1 2 3 4 5 6 7 8 9 10 [InitializeOnLoadMethod] static void Start () { Selection.s ...
- libc-glibc
glibc 和 libc 都是 Linux 下的 C 函数库. libc 是 Linux 下的 ANSI C 函数库:glibc 是 Linux 下的 GUN C 函数库. ANSI C 和 GNU ...
- #linux包之tcpdump之tcpdump命令
概述 man tcpdump 已阅 yum install tcpdump Downloading Packages:(1/2): libpcap-1.4.0-1.20130826git2dbcaa1 ...