3.4 排序相关命令
3.4.1 用SORT命令进行排序
SORT命令进行排序SORT语法:
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination],其中:BY:指定排序模式
LIMIT offset count:
offset:偏移量
count:需返回的元素个数
GET:以排序的结果作为键名,去获取这些键名对应的值
ASC/DESC:指定排序规则为升/降序
ALPHA:该选项用于指定对一个包含字符串值的集合键进行排序
STORE:默认状况下,排序结果会返回给客户端.使用STORE描述符,能够将结果存储在指定key上,若是Key已经存在则覆盖.而不将排序结果返回给客户端
功能:升序或降序排列
例:使用SORT命令对list进行升序排列
创建list:
127.0.0.1:6379> LPUSH salary 10000 15000 13500 12000
(integer) 4读取list时升序排列:
按写入顺序读取list:
例:使用SORT命令对set进行降序排列
创建set:
降序排序读取:
可以看到,SORT命令默认只能对数值型元素进行排序
使用SORT命令对字符串类型元素进行排序:
例:使用SORT命令对zset排序
创建zset:
按zset中元素的ASCII码升序排序:
按zset中元素的ASCII码降序排序:
可以看到,使用SORT命令读取zset时,排序与元素的score是无关的,仅与元素的字面量有关
3.4.2 用BY参数指定排序模式
BY参数指定排序模式例:
现有一list如下:
按VIP后的数字降序排序:
3.4.3 用LIMIT参数返回部分排序结果
LIMIT参数返回部分排序结果例:
创建list:
升序排序取前3个元素:
升序排序取第5个元素和第6个元素的值:
3.4.4 SORT命令里GET参数的用法
SORT命令里GET参数的用法GET参数:以排序的结果作为键名,去获取和这些键名相关的值
例:
创建一个list:
以该list中的元素为键名,创建与这些键名有关的字符串:
创建键名以name-开头的且和list中的元素有关的字符串:
创建键名以symbol-开头且和list中的元素有关的字符串:
以升序对list排序,获取键名为name-list中的元素的值:
可以看到,由于存在键名为name-100和name-80的值,故能够取到
以降序对list排序,获取键名为symbol-list中的元素的值:
以降序对list排序,获取键名为键名为name-list中的元素和键名为symbol-list中的元素的值:
3.4.5 通过STORE参数提升性能
STORE参数提升性能例:将list中的元素倒序排序后保存为另一个list
查看list:
将list倒序排序并保存为一个名为score-desc的list:
查看保存的结果:
Last updated