惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
J
Java Code Geeks
C
Check Point Blog
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
IT之家
IT之家
Martin Fowler
Martin Fowler
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
U
Unit 42
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
I
InfoQ

博客园 - FreeBird

研发过程度量平台资料整理 confluence使用经验总结 【转】用chrome滚动截屏 (转)六大因素决定供应链金融互联网平台的竞争力 (转)抢跑2018!星辰亿链区块链金融供应链项目率先落地 (转)2018实战型供应链金融研修班第一站:走进传化集团、川山甲供应链,探讨智慧供应链金融创新 (转)2017年12月宋华教授携IBM中国研究院、猪八戒网、中航信托、33复杂美共同论道智慧供应链金融 物联网+知识储备 淘客相关知识 京东相关知识 Redmine开源项目管理搭建 (转)spring hibernate properties详解 Redis在.net中的应用学习 Redis学习第八课:Redis高级实用特性(二) Redis学习第八课:Redis高级实用特性(一) Redis学习第七课:键值命令和服务器命令 Redis学习第五课:Redis Set类型及操作 Redis学习第四课:Redis List类型及操作 (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.
Redis学习第六课:Redis ZSet类型及操作
FreeBird · 2015-06-17 · via 博客园 - FreeBird

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) "2"
127.0.0.1:6379> zincrby zset1 5 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"
3) "seven"
4) "7"
127.0.0.1:6379> zrank zset1 seven
(integer) 1

zrevrank:返回名称为key的member元素的排名(按score从大到小排序)即下标。(用法:zrank 有序集合 指定的元素值)

127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "two"
2) "1"
3) "seven"
4) "7"
127.0.0.1:6379> zrevrank zset1 seven
(integer) 0

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) 3

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) 4

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) "7"
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"