redis的sort命令
1、简单描述
sort命令可以对list、set和sorted set的元素进行排序,然后显示排序的结果,不影响这些类型里面存储的数据的排序。就是说sort可以对list的元素排序,但是执行lrange等命令会发现在内存中存储的元素的顺序没变。
2、相关操作(基于4.0.1版本)
sort的格式:
sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
1)sort key 不加其他的参数,那么会按照asc的方式来排序,注意这里前提是元素的值是数字类型,如果元素的值是字符串,需要加上alpha(表示按照字母排序)才能排序。

2)sort key by pattern 就是按照一个模式来排序

3)sort key get pattern:返回的值是按照get pattern来显示,其中get #表示显示原来的key里面元素的值。

4)sort key limit start num: 获取从下标start开始的num个元素,注意下标是从0开始计算的。

5)sort key store 目标list:把排序的结果存储到一个目标list上。

3、小结
1)大数据量的sort命令会占用不少时间,由于redis是单进程单线程的,那么在sort排序期间,其他的client的操作就会被阻塞,要等待。解决方法就是把这种耗时的操作放在slave机器(主从复制的从机器)去执行,另外就是对排序的结果存储起来,避免多次做同一sort操作。还有一种做法是采用sorted set根据需求建立索引。
2)如果有多个redis server,比如集群的情况下,key可能会放在不同的服务器上,那么是不好操作的,如果进行sort要根据所有的name*的排序结果来排序某个list或者set,会很难操作,那么可以使用一致性哈希算法,尽量把包含有相同用途的key放在同一台服务器上,比如key的名称可以用{}包含相同的部分,比如{name}11 , {name}12,根据{}里面的内容做哈希算法,那么{name}11 和{name}12等key会存放在同一台服务器上,方便做sort等操作。{}这个叫做hash tag,有兴趣的朋友可以自行搜索hash tag去进一步了解。
redis的sort命令的更多相关文章
- Redis的 SORT命令
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [S ...
- 8、Redis中sort命令详解
写在前面的话:读书破万卷,编码如有神 ------------------------------------------------- 1.排序 (1)sort:可以对List.Set.ZSet里面 ...
- redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...
- 通过redis的monitor命令排除故障
项目里有10台服务器都在一个刀箱里,其中一台是redis缓存服务器,另外的是app服务器.通过监控发现这个刀箱的流量750M,其中缓存服务器的流量达105M,这么高的流量已经造成其它项目的服务器网络延 ...
- Jedis对Redis的常用命令操作
本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...
- redis常用的命令总结
redis常用的命令大全 1.基于内存的key-value数据库 2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,取get 81000次 3.支持数据持久化 4.value可以 ...
- redis的常用命令01
启动redis的命令: redis-server redis.windows.conf把redis设置成windows下的服务的命令:输入命令后刷新会出现redis的服务:redis-server - ...
- 2、redis原生的命令操作不同数据类型
一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个v ...
- 【REDIS】 redis-cli 命令
Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用. 在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法.下面将 ...
随机推荐
- Python之print字典
在python 下面一个包含中文字符串的列表(list)或字典,直接使用print会出现以下的结果: >>> adict={'a':'中文'} >>> print ...
- netty 入门二 (传输bytebuf 或者pojo)
基于流的数据传输:在基于流的传输(如TCP / IP)中,接收的数据被存储到套接字接收缓冲器中. 不幸的是,基于流的传输的缓冲区不是数据包的队列,而是字节队列. 这意味着,即使您将两个消息作为两个独立 ...
- WPF字符串中的换行符
<sys:String x:Key="NewUpdateWillShow" xml:space="preserve">第一行 第二行 </sy ...
- 使用Identity Server 4建立Authorization Server (6) - js(angular5) 客户端
预备知识: http://www.cnblogs.com/cgzl/p/7746496.html 第一部分: http://www.cnblogs.com/cgzl/p/7780559.html 第二 ...
- HTML5开发在2017年发展趋势如何?
随着移动互联网行业的飞速发展,人们借助于网络相互传达获取的信息越来越广泛,互联网前端开发中HTML5是最受关注的热点,HTML5让开发者和用户重新的对网页有了新的认识,从浏览器到APP都在受h5带来的 ...
- 并行设计模式(二)-- Master-Worker模式
Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker模式.Guarded Suspeionsion模式.不变模式和生产者-消费者模式等.这篇文章主要讲述Mast ...
- 自动化运维工具——ansible详解(一)
ansible 简介 ansible 是什么? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统 ...
- python 正则空格\xa0实录 与xpath取 div 里面的含多个标签的所有文字
业余玩爬虫时,由原先的原生写法 改为 scrapy框架了,使用自带的selector时,xpath配合正则来抓取回复数和阅读数的时候,遇到的小问题,mark下. 首先获取到 我需要的数据块,(我用sc ...
- win7及以上系统打开chm空白或显示"无法打开"的2个解决方案
1:在文件上右键单击属性.选择解锁. 2:确保文件路径中没有特殊字符.比如"#".如果路径中存在特殊字符,chm文件可能找不到路径而无法显示.如 d:\资料\c#\***.chm. ...
- 利用阿里云Centos7建站过程
以下可能不尽详述,如有问题欢迎指出 准备过程:1. 阿里云主机一台2.域名一个 3.github个人帐号开始: 1.以root帐号登录云主机 2.安装apache [root@192 ~]# yum ...