专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

redis:zset(赋值、取值、删除、修改分数)

1、概念

(1)基本概念

  • redis的有序集合与集合一样也是String类型元素的集合,不允许有重复的元素
  • 每一个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行重大到小的排序
  • 有序集合中的成员是唯一的,但是分数可以重复
  • 集合是通过哈希表实现的,集合中的最大元素是2的32次方减1。Zset是有序且不重复的

(2)应用

销量排行、积分排行、成绩排行,集合的value作为学号,成绩作为分数,插入集合的时候就已经排好顺序了

2、赋值

(1)赋值语法

127.0.0.1:6379> zadd z1 1 html 23 css 25 js 
(integer) 3

向有序集合中添加一个或多个成员,或者更新已经存在的成员的分时

3、取值

(1)获取有序集合的成员数量

127.0.0.1:6379> zcard z1
(integer) 3

(2)计算有序集合中指定区间分数的成员数

127.0.0.1:6379> zcount z1 1 23
(integer) 2

(3)返回有序集合指定成员的索引

127.0.0.1:6379> zrange z1 0 -1
1) "html"
2) "css"
3) "js"
127.0.0.1:6379> zrank z1 js
(integer) 2
127.0.0.1:6379> zrank z1 html
(integer) 0

(4)通过索引区间返回有序集合指定区间内的成员

127.0.0.1:6379> zrange z1 0 -1
1) "html"
2) "css"
3) "js"
127.0.0.1:6379> zrange z1 0 1
1) "html"
2) "css"
127.0.0.1:6379> zrevrange z1 0 -1
1) "js"
2) "css"
3) "html"
127.0.0.1:6379> zrange z1 0 -1
1) "html"
2) "css"
3) "js"
127.0.0.1:6379> 

zrevrange是通过索引,分数从高到低排列

(5)通过分数返回有序集合指定区间的成员

127.0.0.1:6379> zrangebyscore z1 0 23
1) "html"
2) "css"
127.0.0.1:6379> zrevrangebyscore z1 23 0
1) "css"
2) "html"
127.0.0.1:6379> zrangebyscore z1 0 23
1) "html"
2) "css"

(6)返回索引

127.0.0.1:6379> zrank z1 css
(integer) 1

4、删除

(1)移除集合

127.0.0.1:6379> del z1
(integer) 1
127.0.0.1:6379> zrange z1 0 -1
(empty list or set)

(2)移除集合中的一个或多个成员

127.0.0.1:6379> zadd z1 1 html 23 css 25 js 
(integer) 3
127.0.0.1:6379> zrange z1 0 -1
1) "html"
2) "css"
3) "js"
127.0.0.1:6379> zrem z1 html css
(integer) 2
127.0.0.1:6379> zrange z1 0 -1
1) "js"

(3)移除有序集合中给定的排名区间的所有成员

127.0.0.1:6379>  zadd z1 1 html 23 css 25 js 
(integer) 3127.0.0.1:6379> zremrangebyrank z1 0 1
(integer) 2
127.0.0.1:6379> zrange z1 0 -1
1) "js"

(4)根据分数区间删除

127.0.0.1:6379> zrange z1 0 -1
1) "html"
2) "css"
3) "js"
127.0.0.1:6379> zremrangebyscore z1 1 23
(integer) 2
127.0.0.1:6379> zrange z1 0 -1
1) "js"

5、增加分数

(1)增加元素的分组,返回值是更改后的分数:

127.0.0.1:6379> zrange z1 0 -1
1) "html"
2) "css"
3) "js"
127.0.0.1:6379> zincrby z1 100 html
"101"
127.0.0.1:6379> zrange z1 0 -1
1) "css"
2) "js"
3) "html"

99_1.png

6、zset应用案例

(1)插入学生的成绩:

127.0.0.1:6379> zadd zhai 67 java 89 database 90 html 100 css 
(integer) 4

99_2.png

(2)查询比较高的两门功课

127.0.0.1:6379> zrevrange zhai 0 1
1) "css"
2) "html"

(3)查询60-90的功课:

127.0.0.1:6379> zrangebyscore zhai 60 90
1) "java"
2) "database"
3) "html"

文章永久链接:https://tech.souyunku.com/22370

未经允许不得转载:搜云库技术团队 » redis:zset(赋值、取值、删除、修改分数)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们