sorted set类型

sorted sets类型以及其操作
zset是set的一格升级版本,它在set的基础上增加了一格顺序属性,这一属性在添加元素的同时可以指定,每次指定后,zset会自动重新按照新的值调整顺序。可以理解为有两列的mysql表,一列存储value,一列存储顺序。操作中key理解成zset的名字。

zadd
向名称为key的zset中添加元素member,score用于排序,如果该元素存在,则更新其顺序

127.0.0.1:> zadd key [NX|XX] [CH] [INCR] score member [score member ...]
127.0.0.1:> zadd zset one
(integer)
127.0.0.1:> zadd zset - two
(integer)

zrange
遍历集合的元素
127.0.0.1:6379> zrange key start stop [WITHSCORES] //withscores代表的是否显示顺序号  start和stop代表所在的位置的索引。可以这样理解:将集合元素依照顺序值升序排序再输出,start和stop限制遍历的限制范围

127.0.0.1:> zadd zset - hhh
(integer)
127.0.0.1:> zrange zset
) "hhh"。
127.0.0.1:> zrange zset - withscore
) "two"
) "-1"
) "one"
) ""
zset元素也是不重复的,不要将它理解成为map了,score只是附加的,并不是array中的Index,而是代表该元素的顺序号
同一个顺序可以有多个元素:
127.0.0.1:6379>  zrange zset 0 -1 withscores
1) "one"
2) "0"
3) "two"
4) "0"

zrem
删除集合中的member元素

127.0.0.1:> zrange zset  - withscores
) "one"
) ""
) "two"
) ""
) "three"
) ""
127.0.0.1:> zrem zset one
(integer)
127.0.0.1:> zrange zset -
) "two"
) "three"

zincrby
如果在名称为key的zset中已经存在元素member,则该元素的score增加incremenr否则向该集合中添加该元素,其score的值为increment

127.0.0.1:> zincrby key increment member
127.0.0.1:> zincrby zset two
""
127.0.0.1:> zincrby zset four
""
127.0.0.1:> zrange zset - withscores
) "four"
) ""
) "three"
) ""
) "two"
) ""
127.0.0.1:>
127.0.0.1:> zincrby zset - two
""

zrank
返回名称为key的zset中member元素的排名(类似索引从0开始)(按score从小到大排序)即下标

127.0.0.1:> zrank key member
127.0.0.1:> zrange zset - withscores
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zrank zset two
(integer)
127.0.0.1:> zrank zset four
(integer)
127.0.0.1:> zrank zset three
(integer)

注意得到的是排名而不是顺序值score

zrevrank
rev:代表翻转
返回名称为key的zset中member元素的排名(按score从大到小排序),即下标

127.0.0.1:> zrange zset  - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zrank zset hhh
(integer)
127.0.0.1:> zrevrank zset hhh
(integer)

zrevrange
按照顺序值降序排序然后显示指定下标内的值

127.0.0.1:> zrevrange key start stop [WITHSCORES]
127.0.0.1:> zrevrange zset - withscores
) "three"
) ""
) "four"
) ""
) "two"
) ""
) "hi"
) ""
) "hhh"
) "-1"
127.0.0.1:> zrange zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""

zrangebyscore
就是利用score升序排序,而是返回集合中score给定区间内的元素。范围内的元素一句score升序排序。start和stop代表的不再是index而是score

127.0.0.1:> zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
127.0.0.1:> zrange zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zrangebyscore zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""

zcount
返回集合中score指定区间中元素的数量

127.0.0.1:> zcount key min max
127.0.0.1:> zcount zset -
(integer)

zcard
返回集合中的集合元素

127.0.0.1:> zcard zset
(integer)

zremrangebyrank
删除集合中排名在指定区间内的元素,排名意思是index,排序值是score

127.0.0.1:> zremrangebyrank key start stop
127.0.0.1:> zrange zset - withscores
) "hhh"
) "-1"
) "hi"
) ""
) "two"
) ""
) "four"
) ""
) "three"
) ""
127.0.0.1:> zremrangebyrank zset
(integer)
127.0.0.1:> zrange zset - withscores
) "four"
) ""
) "three"
) ""

remrangebyscore
删除集合中排序值在指定区间的元素

127.0.0.1:> zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
127.0.0.1:> zrange zset - withscores
) "four"
) ""
) "three"
) ""
127.0.0.1:> zremrangebyscore zset
(integer)
127.0.0.1:> zremrangebyscore zset
(integer)
127.0.0.1:> zrange zset - withscores
(empty list or set)

zset类型以及其操作的更多相关文章

  1. zset类型数据的操作指令

    1. 也可以追加数据 2. 3. 4. 5. 6. 7. 8. 9.

  2. 7、Redis中对ZSet类型的操作命令

    写在前面的话:读书破万卷,编码如有神 --------------------------------------------------------------------   ---------- ...

  3. RedisTemplate中zset类型的使用

    简述 上一文中简述了使用StringRedisTemplate操作redis中的set类型,今天来记录一下操作zset类型的主要方法 代码 @RunWith(SpringRunner.class) @ ...

  4. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  5. Redis自学笔记–Zset类型及管理简述

    Zset类型                                                                                               ...

  6. 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:

    "/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...

  7. Python(Redis 中 Set/Zset 类型数据和其他操作)

    1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...

  8. Redis学习第六课:Redis ZSet类型及操作

    Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列字段的数据表,一列 ...

  9. Redis学习篇(六)之ZSet类型及其操作

    ZADD 作用: 将元素及其分数添加到集合中 语法: ZADD key score membre [score member] 当集合元素已经存在时,再次添加会更新其分数 当score是 +inf 时 ...

随机推荐

  1. 337APuzzles

    dangerous /*大水题目.不解释 给你m个数,从中选出n个,保证最大值和最小值的差值最小, 做法:从小到大排序,然后暴力枚举每个长度是n的序列*/ #include<stdio.h> ...

  2. sqlx基础语法与应用

    基础: ``` 引用:_ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ``` 初始化 ...

  3. 20145314郑凯杰 《Java程序设计》课程总结

    20145314郑凯杰 <Java程序设计>课程总结 每周读书笔记链接汇总 ①寒假预习--"helloworld" ②第一周读书笔记 ③第二周读书笔记 ④第三周读书笔记 ...

  4. 20145230熊佳炜《网络对抗》实验八:WEB基础

    20145230熊佳炜<网络对抗>实验八:WEB基础 实验目标 Web前端HTML:能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTM ...

  5. 搭建springmvc

    对于SpringMvc来说,搭建这框架,首先引入相应的包.如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xml ...

  6. Css初步认识

    css 美化页面 cascading style sheet 层叠样式表 css语法:  选择器{ css属性名:属性值;css属性名:属性值;} css引入方式:  方式一:内联样式表   通过标签 ...

  7. 各类人工智能&大数据相关比赛

    比赛技巧:https://zhuanlan.zhihu.com/p/28084438 文章来源: https://www.imooc.com/article/72863 随着近几年人工智能和大数据的快 ...

  8. jsp选项卡导航实现——模板

    效果 刚进来页面的样子 在第二个选项卡上方时 点击后 离开 同样第三个 点击 移走鼠标 代码 <%@ page contentType="text/html;charset=UTF-8 ...

  9. POJ 1236 Network of School

    http://poj.org/problem?id=1236 题意: 给出一个图,至少要选多少个点才能遍历全图和至少需要添加多少边使得整个图是强连通. 思路: 强连通计算连通分量后缩点,计算入度为0的 ...

  10. springboot Actuator健康检查

    通过情况下,如我们想在系统中添加一个健康检查的接口,我们怎么做呢? 我们会新建一个类,或在已存在类的基础上添加检测接口. package com.crhms.medicareopinion; impo ...