Redis学习第六课:Redis ZSet类型及操作
Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列字段的数据表,一列存value,一列存顺序编号。操作中key理解为zset的名字。
有序集合Zset的操作:
zadd:向名称为key的zset中添加元素member,score用于排序。如果该元素存在,则更新其顺序。(用法:zadd 有序集合 顺序编号 元素值)
127.0.0.1:6379> zadd zset1 1 two
(integer) 1
127.0.0.1:6379> zadd zset1 2 one
(integer) 1
127.0.0.1:6379> zadd zset1 3 seven
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "two"
2) "one"
3) "seven"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "one"
4) "2"
5) "seven"
6) "2"
zrem:删除名称为key的zset中的元素。(用法:zrem 有序集合 要删除的元素值)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "one"
4) "2"
5) "seven"
6) "2"
127.0.0.1:6379> zrem zset1 one
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "2"
zincrby:如果在名称为key的zset中已经存在元素member,则该元素的score增加increment,否则向该集合中添加该元素,其score的值为increment.即对元素的顺序号进行增加或减少操作。(用法:zincrby 有序集合 increment 指定的元素值)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) seven
"7"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "7"
zrank:返回名称为key的member元素的排名(按score从小到大排序)即下标。(用法:zrank 有序集合 指定的元素值),返回值为指定的元素值的索引下标号。
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
zrevrank:返回名称为key的member元素的排名(按score从大到小排序)即下标。(用法:zrank 有序集合 指定的元素值)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
zrange:显示集合中指定下标的元素值(按score从小到大排序)。如果需要显示元素的顺序编号,带上withscores。(用法:zrange 有序集合 下标索引1 下标索引2 withscores)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"
zrevrange:显示集合中指定下标的元素值(按score从大到小排序)。如果需要显示元素的顺序编号,带上withscores。(用法:zrevrange 有序集合 下标索引1 下标索引2 withscores)
127.0.0.1:6379> zrevrange zset1 0 -1 withscores
1) "seven"
2) "7"
3) "one"
4) "3"
5) "five"
6) "2"
7) "two"
8) "1"
zrangebyscore:显示指定范围顺序编号的元素(按score从小到大排序)。(用法:zrangebyscore 有序集合 顺序编号1 顺序编号2 withscores)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"
127.0.0.1:6379> zrangebyscore zset1 2 7 withscores
1) "five"
2) "2"
3) "one"
4) "3"
5) "seven"
6) "7"
zcount: 返回集合中score在给定区间的数量。(用法:zcount 有序集合 顺序编号1 顺序编号2)
127.0.0.1:6379> zcount zset1 2 7
(integer)
zcard:返回集合中元素个数。(用法:zcard 有序集合)
127.0.0.1:6379> zrange zset1 0 -1
1) "two"
2) "five"
3) "one"
4) "seven"
127.0.0.1:6379> zcard zset1
(integer)
zremrangebyrank:删除集合中排名在给定区间的元素。(按索引下标删除)(用法:zremrangebyrank 有序集合 索引编号1 索引编号2)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) "7"
127.0.0.1:6379> zremrangebyrank zset1 3 3
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
zremrangebyscore:删除集合中score在给定区间的元素(按顺序score值来删除)。(用法:zremrangebyscore 有序集合 顺序编号1 顺序编号2)
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
7) "seven"
8) ""
127.0.0.1:6379> zremrangebyscore zset1 5 7
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "five"
4) "2"
5) "one"
6) "3"
Redis学习第六课:Redis ZSet类型及操作的更多相关文章
- redis学习(六)redis管道
redis管道 1.redis管道介绍 redis采用的是CS架构,客户端与服务器端通过tcp协议进行连接通信,因此无论是发出请求还是接收响应,都必须经过网络传输.在tcp连接过程中,客户端和服务器端 ...
- Redis学习篇(六)之ZSet类型及其操作
ZADD 作用: 将元素及其分数添加到集合中 语法: ZADD key score membre [score member] 当集合元素已经存在时,再次添加会更新其分数 当score是 +inf 时 ...
- 【Redis】Redis学习(六) Redis 基本运维
Redis的单机搭建,主从搭建,Sentinal搭建,以及Redis集群搭建的步骤参照前面的文章.现在来说一下Redis的基本运维,毕竟如果一切正常是最好的,但是当出现问题不能使用的时候,准确定位问题 ...
- 【Redis 系列】redis 学习十六,redis 字典(map) 及其核心编码结构
redis 是使用 C 语言编写的,但是 C 语言是没有字典这个数据结构的,因此 C 语言自己使用结构体来自定义一个字典结构 typedef struct redisDb src\server.h 中 ...
- redis 学习(4)-- 哈希类型
redis 学习(4)-- 哈希类型 介绍 redis 中哈希键值结构: 可以看出:哈希键值包括 key,field,value 这三部分,即键,属性,值这三部分.可以这样来表示: key, (fie ...
- Redis学习笔记六:持久化实验(AOF,RDB)
作者:Grey 原文地址:Redis学习笔记六:持久化实验(AOF,RDB) Redis几种持久化方案介绍和对比 AOF方式:https://blog.csdn.net/ctwctw/article/ ...
- 分布式缓存技术redis学习—— 深入理解Spring Redis的使用
关于spring redis框架的使用,网上的例子很多很多.但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么 ...
- Python学习第六课
Python学习第六课 课前回顾 列表 创建 通过 [] :写在[]里,元素之间用逗号隔开 对应操作: 查 增 append insert 改(重新赋值) 删除(remove del pop(删除后会 ...
- redis 学习(1)-- redis 安装与启动
redis 学习(1)-- redis 安装与启动 redis 特性 关于 redis 的介绍网上已经有很多信息了,这里我就不在详细说明了.介绍一下几个鲜明特性: 1.速度快 官方称可以达到10W的q ...
随机推荐
- JavaScript Dom 绑定事件
JavaScript Dom 绑定事件 // 先获取Dom对象,然后进行绑定 document.getElementById('xx').onclick document.getElementByI ...
- 算法(第四版)C# 习题题解——1.1
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 善用 Ctrl + F 查找题 ...
- VS2015 scanf 函数报错 error C4996: 'scanf'
错误提示:error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. ...
- python 基础知识点一
基础数据类型初始. 数字:int 12,3,45 + - * / ** int: bit_lenth()转化为2进制的最小位数. % 取余数 ps:type() 字符串转化成数字:int(str ...
- codeforce 955c --Sad powers 思路+二分查找
这一题的题意是 定义一个数,该数特点是为a的p次方 (a>0,p>1) 再给你n个询问,每个询问给出一个区间,求区间内该数的数目. 由于给出的询问数极大(10e5) 所以,容易想到应该 ...
- Anaconda部署python环境
Anaconda安装 首先进入到anaconda的官网,如下图所示,会看到anaconda的下载页面: 2.下拉或者单击图中的Windows选项,得到如下图所示的界面,此时可以根据自己需要的版本进行相 ...
- P1108 低价购买
传送门 思路: 对于第一问很容易看出是求最长下降子序列,N2 的暴力就可解决.而第二问是求最优方案数(且不重复),需要判重.可以在求解最长下降子序列的基础上增开一个数组 g ,g[ i ] 表示以 i ...
- js 奇偶判断
function isOdd(num) { == ; } function isEven(num) { == ; } function isSane(num) { return isEven(num) ...
- springboot aop 不生效原因解决
最近参照资料创建Springboot AOP ,结果运行后aop死活不生效. 查明原因: 是我在创建AOP类时选择了Aspect类型,创建后才把这个文件改为Class类型,导致一直不生效, 代码配置这 ...
- WebSocket ,Socket ,Http差异
最近一直被Socket 被Http搞懵了,然后归类整理了下 首先需要知道网络七层,从上至下 应用,表示,回话,传输,网络,数据链路,物理,一共7层 WebSocket: 这个是在Html5提出的一种规 ...