8.Redis 的数据类型之一:Zset (有序集合)

zhanglei 2022年07月24日 236次浏览

8.Redis 的数据类型之一:Zset (有序集合)

Zset 有序集合

在 set 集合的基础上,增加了一个 score 值。

set key member

zset key score member

Redis 中 zset 的命令

# zadd key score member 在set集合第score的位置存放member
#########################################################
# zrem key member 移除元素
##########################################################
# zrange key start end  按照下表顺序从小到大获取member
# zrevrange key start end 按照下表顺序从大到小获取member
# zrangebyscore key min max 按score从小到大升序获取member
# zrangebyscore key min max withscores 加上score一起获取 
# zrevrangebyscore key min max 按score从大到小降序获取member
# zcard key    获取key集合中元素的个数
# zcount key min max 获取key集合中指定范围元素的个数
#########################################################
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> clear
127.0.0.1:6379> zadd salary 500 zhanglei
(integer) 1
127.0.0.1:6379> zadd salary 1000 lutingting
(integer) 1
127.0.0.1:6379> zadd salary 800 luqisai
(integer) 1
127.0.0.1:6379> zrange salary 0 -1
1) "zhanglei"
2) "luqisai"
3) "lutingting"
127.0.0.1:6379> zrevrange salary 0 -1
1) "lutingting"
2) "luqisai"
3) "zhanglei"
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores
1) "zhanglei"
2) "500"
3) "luqisai"
4) "800"
5) "lutingting"
6) "1000"
127.0.0.1:6379> zrevrangebyscore salary +inf -inf withscores
1) "lutingting"
2) "1000"
3) "luqisai"
4) "800"
5) "zhanglei"
6) "500"
127.0.0.1:6379> zcount salary 500 800
(integer) 2
127.0.0.1:6379> 


zset 的使用场景

班级成绩,工资表排序

普通消息,重要消息,带权重进行判断

排行榜应用实现等等