世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
首先展示一下redis的sort功能的使用:
# 对数值排序 sort nums # 对数值倒序 sort nums desc # 对字符串排序 sort fruits alpha # 根据其他字段值排序 sort fruits by *-price # 返回排序后的某段序列值 sort nums limit 2 3 # 返回排序后序列值对应的其他字段值 sort fruits alpha get *-name # 存储排序结果 lrange遍历 sort fruits alpha store fruits_1执行顺序是: sort -> limit -> get -> store 注意:除了get以外,其他命令的作用不随位置改变
执行原理是:
1. 针对要排序的集合,创建相同长度的redisSortObject数组,使得每个redisSortObject指向集合的对应元素。 2. 根据排序命令sort,对redisSortObject数组中的元素进行排序。 3. 根据截取命令limit,返回对应位置和数量的排序后的数组。 4. 根据get命令,返回排序后的值对应的键的值。 5. 根据store命令,将排序结果存储到新的列表中;如果组合命令中包含limit,则存储的是limit之后的结果;如果组合命令中有get,则存储的是get后的结果。实例如下:
sort fruits alpha limit 0 2 get *-name store fruits_1 如果通过 lrange fruits_1 0 3 查看fruits_1的值, 可以看到返回的是依次执行 sort、limit、get 之后的结果更多信息,请关注微信号