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将结果缓存
redis-sort by的更多相关文章
- redis sort
redis sort命令用法 1.命令描述返回或保存给定列表.集合.有序集合key中经过排序的元素.排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较. 2.一般sort用法最简单的sort ...
- 【转载】Redis sort 排序命令详解
转载地址:http://www.jb51.net/article/69131.htm 本文介绍redis排序命令 redis支持对list,set,sorted set元素的排序 sort 排序命令格 ...
- Redis - sort set类型操作
sort set操作:sort set在set基础上增加了一列用于存储顺序序列设置操作:zadd key: zadd key sortnum value 指定key增加元素 ...
- Redis sort命令
http://www.cnblogs.com/linjiqin/archive/2013/06/14/3135921.html 1.添加 投票选项到 redis的 List 和HashMap lis ...
- Redis ---------- Sort Set排序集合类型
sortset是(list)和(set)的集中体现 与set的相同点: string类型元素的集合 不同点: sortset的元素:值+权 适合场合 获得最热门前5个帖子的信息 例如 select * ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- StackExchange.Redis帮助类解决方案RedisRepository封装(字符串类型数据操作)
本文版权归博客园和作者本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/tag/NoSql/ 目录 一.基础配置封装 二.String字符串类型数据操作封 ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- redis学习教程之一基本命令
参阅redis中文的 互动教程(interactive tutorial)来学习的. 目录: 全局操作 get get incr 自增 del 删除 expire 定时 list 队列 set ...
- redis linux 安装及jedis连接测试
一.安装配置 1:下载redis下载地址 http://code.google.com/p/redis/downloads/list推荐下载redis-1.2.6.tar.gz,之前这个版本同事已经有 ...
随机推荐
- UploadLabs靶场
目录 Pass-01 Pass-02 Pass-03 Pass-04 Pass-05 Pass-06 Pass-07 Pass-08 Pass-09 Pass-10 Pass-11 Pass-12 P ...
- 数据驱动ddt安装3种方式_unittest_Python
命令行安装 pip install ddt -i 管理员运行命令提示符 pycharm设置里安装 pycharm Python Packages里安装
- MyBatis数据源模块源码分析
数据源对象是比较复杂的对象,其创建过程相对比较复杂,对于 MyBatis 创建数据源,具体来讲有如下难点: MyBatis 不但要能集成第三方的数据源组件,自身也提供了数据源的实现: 数据源的初始化参 ...
- Django中的ORM转换为SQL语句日志
如果想打印ORM转换过程中的SQL,需要在settings中进行如下配置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, ' ...
- c# Redis缓存的使用和helper类;
使用背景: 项目中用户频繁访问数据库会导致程序的卡顿,甚至堵塞.使用缓存可以有效的降低用户访问数据库的频次,有效的减少并发的压力.保护后端真实的服务器. 对于开发人员需要方便调用,所以本文提供了hel ...
- System.lineSeparator()行分隔符的用法
System.lineSeparator()具体含义 从JDK的源码中,可以看出:它是从JDK1.7之后开始有的这个方法. 在UNIX系统下,System.lineSeparator()方法返回&qu ...
- K8S部署ECK采集日志
1. 部署nfs 1. 安装nfs #所有节点安装 yum install -y nfs-utils 在master节点创建nfs共享目录 mkdir -pv /data/kubernetes 编写配 ...
- centos 7 mysql8 安装和卸载
cent os 7 安装 mysql 8--install-start官网下载MySQL的RPM源,地址:https://dev.mysql.com/downloads/repo/yum/ 下载这个项 ...
- .NET5 IIS ASP.NET CORE 部署时 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure
.NET5 IIS ASP.NET CORE 部署时 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure 部署机器只安装了dotnet-hos ...
- SQL SERVER 2012的安装
1.将光盘镜像用虚拟光驱加载(WIN10自带虚拟光驱) 2.双击setup.exe 3.选择"安装"-"全新 SQL Server 独立安装或向现有安装添加功能" ...