redis-sort by

 

对某个列表(list)、集合(set)、有序集合(zset)排序的时候按照某个 参考键 进行排序,而不是按照按照这个列表、集合或有序集合本身进行排序;

被排序的键和参考键在业务上有关联(这个由业务保证)。

 

e.g. 

有一个记录文章id的列表(list),同时还有一个记录文章id及其更新时间的若干个key(哈希)

 

文章id列表

 

 

保存文章更新时间和作者的哈希key 

 

 

按照每篇文章的更新时间对文章id进行排序

 

 

排序后返回指定字段

 

 

排序后返回指定的多个字段

 

 

 

返回制定的多个字段和元素本身(文章id)

 

 

把排序结果存到某个键

sort    ids   by  post:*->time  desc   get   post:*->author   get #    STORE    idsAfterSort

 

性能优化

对有n个元素的列表进行排序,返回m个元素,其时间复杂度是O(n + mlog(m))

空间复杂度是O(n)

所以开发中使用SORT时需要注意:

(1)尽可能减少排序元素个数

(2)使用 LIMIT 参数只获取需要的数据

(3)排序数据较大时,尽可能使用STORE将结果缓存

 

posted on   崔好好  阅读(141)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示