您的位置:首页 > 数据库 > Redis

Redis学习笔记(五)--排序

2015-09-07 16:31 453 查看

1、SORT命令

SORT命令可以对列表类型、集合类型和有序集合类型键进行排序,并且可以完成与关系数据库中的连接查询类似的任务。



2、BY参数

BY参数的语法为BY 参考键,其中参考键可以是字符串类型键或者是散列类型键的某个字段(表示为键名->字段名).。如果提供了BY参数,sort命令将不再依据元素自身的值进行排序,而是对每个元素使用元素的值替换参考键中的第一个“*”并获取其值,然后一句该值对元素排序。



3、GET参数

GET参数不影响排序,它的作用是使sort命令的返回结果不再是元素自身的值,而是get参数中指定的键值。get参数的规则和by参数一样,get参数也支持字符串类型和散列类型的键,并适应“*”作为占位符。

4、STORE参数

默认情况下sort命令直接返回排序结果,如果希望保存排序结果,则可以通过store参数实现。

5、性能优化

sort命令是redis中最强大的最复杂的命令之一,如果使用不好很容易成为性能瓶颈。sort命令的时间复杂度是O(n+mlog(m)),其中n表示要排序的列表(集合、有序集合)中的元素个数,m表示要返回的元素个数。当n较大的时候sort命令的性能相对较低,并且redis在排序前会建立一个长度为n的容器来存储待排序的元素,虽然是一个临时过程,但如果同时进行较多的大数据量排序操作则会严重影响性能。

尽可能减少待排序键中的元素的数量。

使用limit参数只获取需要的数据。

如果要排序的数据量较大,尽可能使用store参数将结果缓存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis 数据库 排序