对某个列表(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将结果缓存

redis-sort by的更多相关文章

  1. redis sort

    redis sort命令用法 1.命令描述返回或保存给定列表.集合.有序集合key中经过排序的元素.排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较. 2.一般sort用法最简单的sort ...

  2. 【转载】Redis sort 排序命令详解

    转载地址:http://www.jb51.net/article/69131.htm 本文介绍redis排序命令 redis支持对list,set,sorted set元素的排序 sort 排序命令格 ...

  3. Redis - sort set类型操作

    sort set操作:sort set在set基础上增加了一列用于存储顺序序列设置操作:zadd key:        zadd key sortnum value        指定key增加元素 ...

  4. Redis sort命令

    http://www.cnblogs.com/linjiqin/archive/2013/06/14/3135921.html 1.添加 投票选项到 redis的  List 和HashMap lis ...

  5. Redis ---------- Sort Set排序集合类型

    sortset是(list)和(set)的集中体现 与set的相同点: string类型元素的集合 不同点: sortset的元素:值+权 适合场合 获得最热门前5个帖子的信息 例如 select * ...

  6. [原]分享一下我和MongoDB与Redis那些事

    缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...

  7. StackExchange.Redis帮助类解决方案RedisRepository封装(字符串类型数据操作)

    本文版权归博客园和作者本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/tag/NoSql/ 目录 一.基础配置封装 二.String字符串类型数据操作封 ...

  8. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  9. redis学习教程之一基本命令

    参阅redis中文的 互动教程(interactive tutorial)来学习的. 目录: 全局操作 get  get incr  自增 del 删除 expire 定时 list  队列 set ...

  10. redis linux 安装及jedis连接测试

    一.安装配置 1:下载redis下载地址 http://code.google.com/p/redis/downloads/list推荐下载redis-1.2.6.tar.gz,之前这个版本同事已经有 ...

随机推荐

  1. 后台生成单个Word文档

    在实际项目开发中经常会遇到一种场景,客户希望点击页面上的生成文件按钮,执行程序动态填充数据到Word模板,直接在后台生成Word文档,而无需显示Word文档.目前网上有一些针对此需求的方案,但每个方案 ...

  2. AIRIOT物联网低代码平台如何配置OPC DA驱动?

    AIRIOT物联网低代码平台提供了丰富的驱动,兼容了市面上95%以上的传感器.控制器及数据采集设备等,并且在持续增加中,能够快速.便捷地实现数据采集与控制功能. AIRIOT物联网低代码平台如何配置O ...

  3. prometheus使用4

    安装pushgateway 下载地址: https://github.com/prometheus/pushgateway/releases 下载这个 [root@mcw04 ~]# tar xf p ...

  4. mongodb的备份与恢复详解

    简单 Mongodb导出与导入 1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.所以,都有如下通用选项:-h host 主机--port port 端口-u username ...

  5. 安装 MySQL ZIP 版本

    安装 MySQL 的 ZIP 版本相对于安装包版本稍微复杂一些,因为它需要手动解压和配置.以下是在 Windows 上安装 MySQL ZIP 版本的步骤: 下载 MySQL ZIP 文件: 前往 M ...

  6. Redis高可用一(主从)

    Redis高可用一(主从) 1.首先要有2或以上的Redis数据库,我这里三个redis(一主两从) 2.进入到主Redis 配置 redis.conf文件 # 主redis bind 0.0.0.0 ...

  7. 记一次 .NET某企业数字化平台 崩溃分析

    一:背景 1. 讲故事 前些天群里有一个朋友说他们软件会偶发崩溃,想分析看看是怎么回事,所幸的是自己会抓dump文件,有了dump就比较好分析了,接下来我们开始吧. 二:WinDbg 分析 1. 程序 ...

  8. Android OpenMAX(七)OMX Service

    上一篇文章我们分析了Android使用OMXStore来管理平台上的软件和硬件编解码组件,这一篇我们再向上一层了解应用层是如何获取调用OMXStore管理组件的.本篇文章代码参考自: framewor ...

  9. Flutter(七):Flutter混合开发--接入现有原生工程(iOS+Android)

    在上一篇文章Flutter(六):Flutter_Boost接入现有原生工程(iOS+Android)中介绍了Flutter_Boost的接入方法,这一篇将介绍Flutter自带的接入方法. 新建工程 ...

  10. JS+DOM简要笔记

    js官方文档: https://www.w3school.com.cn/js/index.asp 简单理解:html是内容,css是控制样式,js是行为. 1,js弱类型特点 JavaScript 是 ...