Redis学习笔记(八) 基本命令:SortedSet操作
原文链接:http://doc.redisfans.com/sorted_set/index.html
SortedSet的数据结构类似于Set,不同的是Sorted中的每个成员都分配了一个值(Score)用于对其中的成员进行排序(升序)。
zadd key score member[[score member] ..]
将一个或多个member及其socre加入到set中,socre须是float类型;例:zadd zsk 1 m1 2 m2 3 m3 0 m4在集合中是[m4 0][m3 3][m2 2][m1 1]这样的顺序。
zcard key
返回有序集合中元素的个数,若key不存在返回0;例:zcard zsk。
zcount key min max
返回score值在min和max之间的元素个数(score和min之间是>=和max是<=),若min>max返回0,若min或max不为float类型返回error;例:zcount zsk 1 4。
zincrby key increment member
为集合成员member的score增加增量increment并返回新的score值,increment可以为负数但必须是float类型否则会返回error,若key不存在则会先新增member成员后再执行操作;例:zincrby zsk -1.1 m1。
zrange key start stop[withscores]
按索引返回key的成员区间,start和stop是有序集合的索引下标(从0开始),若stop<start返回空,若start或stop为负数表示从后开始如-1表示倒数第一个元素,withscores表示是否显示score,若不选此参数则返回结果中不会返回score;例:zrange zsk 0 2 withscores返回:
1) m5
2) 0.5
3) m1
4) 1
5) m4
6) 1
zrangebyscore key min max [withscores][limit offset count]
返回有序集合中score介于min和max之间的元素(若不想包含=请用如 zrangebyscore zsk (1 (4表示),litmit的功能类似于分页,例:zrangebyscore zsk 0 1 withscores limit 0 2返回:
1) m5
2) 0.5
3) m1
4) 1
当然如果你不知道min和max的值可以使用-inf和+inf来替代。
zrank key member
返回有序集合中member的排名,排名以0为底;例:zrank zsk m4。
zrem key member[member...]
移除有序集合中的一个或多个元素,若member不存在则忽略;例:zrem zsk m5 m1。
zremrangebyrank key start stop
删除指定区间中的元素,start和stop的计数从0开始,start的位置须小于stop,start和stop也可为负数表示从后记位如-1表示倒数第一个元素;例:zremrangebyrank zsk 0 -3。
zremrangebyscore key min max
删除score值在min和max之间的元素(若不想包含=请用如 zremrangebyscore zsk (1 (4表示);例:zremrangebyscore zsk 1 2。
zrevrange key start stop[withscores]
和zrange类似,不过zrevrange的元素时倒序排列的:zrevrange zsk 0 5 withscores。
zrevrangebyscore key max min [withscores] [limit offset count]
和zrangebyscore类似,只不过返回结果是按倒序排列(这里需要注意一下max和min的书序),例:zrevrangebyscore zsk 6 2 withscores limit 1 2。
zrevrank key member
和zrank类似,不过数据返回的顺序为倒序,顺序以0位底,也就是说最大的排名为0,例:zrevrank zsk m6。
zscore key member
返回成员member的score值,若key不存在返回nil;例:zscore zsk m3。
zunionstore destination numkeys key [key ...] [weights [weight ...]] [aggregate sum|min|max]
吐槽一句这个命令真心长,不过并不难理解,这个是返回一个或多个集合的并集并将结果存储到destination中去,若destination已存在此元素则score的值会被覆盖:
numkeys用于指定key的数量,若key的数目和numkeys不一致会返回错误,score为元素的score之和,也就是说若sk1和sk2中都有m4,一个score为1另外一个为2,那么合并的新集合中score为3;
weights为每个有序集合的乘法因子,也就是说sk1中和sk2中都有m4,score分别为1和2,乘法因子设置为1和2,那么最终的score为1*1+2*2,weights默认为1一旦显示指定weights那么weight的数目必须与key的数目相同否则会返回error;
aggregate可以指定结果集的聚合方式,默认使用sum将某个成员之和作为score值,使用min使用最小的,使用max使用最大的,如sk1和sk2中m4的score分别为1和2,那么使用sum最终的socre就为3,使用max最终的socre就为2,使用min最总的score就为1,aggregate的会先计算weight再做比较。
例:zunionstore zsk2 2 zsk zsk1 weights 1 4 aggregate max。
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
取交集并存入destination,不想再细说了看zunionstore吧,例:zinterstore zsk2 2 zsk zsk1 weights 1 4 aggregate max。
zscan key cursor[match pattern][count count]
增量迭代有序集合,参见scan,例:zscan sk 0 match *5 count 1。
Redis学习笔记(八) 基本命令:SortedSet操作的更多相关文章
- Redis学习笔记八:集群模式
作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...
- Redis学习笔记八:独立功能之二进制位数组
Redis 提供了 setbit.getbit.bitcount.bitop 四个命令用于处理二进制位数组. setbit 命令用于为位数组指定偏移量上的二进制位设置值,偏移量从 0 开始计数. ge ...
- STM32学习笔记(八) SPI总线(操作外部flash)
1. SPI总线简介 SPI全称串行外设接口,是一种高速,全双工,同步的外设总线:它工作在主从方式,常规需要至少4根线才能够正常工作.SPI作为基本的外设接口,在FLASH,EPPROM和一些数字通讯 ...
- Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数
文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() ...
- 【canvas学习笔记八】像素操作
ImageData对象 ImageData对象包含了一个区域内的canvas的像素信息.它包含以下可读属性: width canvas的宽度,单位是像素. height canvas的高度,单位是像素 ...
- Redis学习笔记(二) Redis 数据类型
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...
- Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- redis 学习笔记-cluster集群搭建
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
随机推荐
- BZOJ3143: [Hnoi2013]游走(期望DP 高斯消元)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3597 Solved: 1618[Submit][Status][Discuss] Descript ...
- (转)Bootstrap 之 Metronic 模板的学习之路 - (7)GULP 前端自动化工具
https://segmentfault.com/a/1190000006738327 初步了解 Metronic 的结构和应用后,我们就可以在项目中应用起来了.考虑到实际项目应用时,会有很多文件需要 ...
- python笔记3----第一个小爬虫
1.先看看要爬的网站有没有爬虫协议,可以看该网站有没有robots.txt,如豆瓣的: 2.requests模块:[requests是第三方,代码比python自带的urllib模块简单] 先加载re ...
- 【LeetCode算法】LeetCode初级算法——字符串
在LeetCode初级算法的字符串专题中,共给出了九道题目,分别为:反转字符串,整数反转,字符串中的第一个唯一字符,有效的字母异位词,验证回文字符串,字符串转换整数,实现strStr(),报数,最 ...
- 【JavaScript框架封装】实现一个类似于JQuery的基础框架、事件框架、CSS框架、属性框架、内容框架、动画框架整体架构的搭建
/* * @Author: 我爱科技论坛 * @Time: 20180715 * @Desc: 实现一个类似于JQuery功能的框架 * V 1.0: 实现了基础框架.事件框架.CSS框架.属性框架. ...
- [luogu4053 JSOI2007] 建筑抢修 (贪心 优先队列)
传送门 题目描述 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤 ...
- django rest-farme-work 的使用(1)
Django REST框架是一个用于构建Web API的强大且灵活的工具包 您可能想要使用REST框架的一些原因: 可浏览性 身份认证 支持ORM和非ORM的序列化 良好的文档支持 安装初步 pip ...
- Ubuntu启动流程
网上很多Linux的启动流程图,也有Ubuntu早期版本的启动流程介绍,却少有近期版本的启动流程介绍(16.04).这里作出总结归纳. Linux系统采用的是RedHat启动方式,启动流程如下: Ub ...
- 做支付遇到的HttpClient大坑
前言 HTTPClient大家应该都很熟悉,一个很好的抓网页,刷投票或者刷浏览量的工具.但是还有一项非常重要的功能就是外部接口调用,比如说发起微信支付,支付宝退款接口调用等:最近我们在这个工具上栽了一 ...
- 阻止a标签跳页,使用单击事件函数处理该请求
阻止a标签跳页href="javascript:void(0)" 单击该标签时 页面不跳页 使用单击事件函数来处理该单击请求 返回上一层页面 ---------------- ...