《Redis设计与实现》第二十一章总结一:排序的选项实现一

本文详细介绍了Redis中的SORT命令及其各个选项的实现,包括ALPHA、ASC/DESC和BY选项。通过具体例子解释了如何对字符串和数字值进行排序,以及如何根据特定权重键进行排序。
摘要由CSDN通过智能技术生成

21 排序

SORT命令可以对列表键、集合键或有序集合键的值进行排序

核心思想:按照某个属性,对数组进行排序

21.1 SORT < key >命令的实现

SORT命令的最简单形式:SORT < key >,可以对一个包含数字值的键key进行排序

以RPUSH numbers 3 1 2;SORT numbers为例讲解实现原理:
在这里插入图片描述
在这里插入图片描述

redisSortObject结构:
在这里插入图片描述

21.2 ALPHA选项的实现

通过使用SORT < key > ALPHA,可以对包含字符串值的键进行排序

以SADD fruits apple banana cherry;SORT fruits ALPHA为例讲解实现原理:
在这里插入图片描述

21.3 ASC选项和DESC选项的实现

默认情况下为ASC,升序,DESC为降序

实现:都是快排,区别在于算法使用的对比函数相反而已

以RPUSH numbers 3 1 2;SORT numbers;SORT numbers ASC为例:
在这里插入图片描述

21.4 BY选项的实现

默认情况下使用被排序键包含的元素作为排序的权重,通过使用BY选项,可以指定某些字符串键,或者某个哈希键所包含的某些域(field)来作为元素的权重进行排序

以集合键+数字值权重为例讲解实现原理:
在这里插入图片描述
在这里插入图片描述

21.5 带有ALPHA选项的BY选项的实现

BY选项默认假设权重键保存的值为数字值

配合ALPHA,则权重键可以保存字符串值

以集合键+字符串权重为例讲解实现原理:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值