redis 数据类型_redis数据类型zset

026f323ce777742a290c98b326d223c5.png
10303

redis数据类型zset

redis zset :有序集合是string类型元素的集合,且不允许重复的成员.

每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序.有序集合的成员是唯一的,但分数(score)却可以重复.

比如排行榜:一个班级的成绩,一个论坛的帖子热度等,有序集合中,每个 元素都有权重score,依次来对元素进行排序.

1.常用命令

命令描述
zadd key score1 member1 [score2 member2]向有序集合添加一个或多个成员
或者更新已存在成员的score
zcard key获取有序集合的成员数
zcount key min max计算有序集合指定区间的成员数
zincrby key increment member指定成员的分数加上增量
zrange key start stop withscores通过索引返回指定区间的成员
zrangebyscore key min max [withscores] [limit]通过分数返回指定区间的成员
zrank key member返回指定成员的索引
zrem key member1 [member2]移除一个或多个成员
zremrangebyrank key start stop移除指定索引区间的成员
zremrangebyscore key max min移除指定分数区间的成员
zrevrange key start stop返回指定区间的成员,通过索引,
分数从低到高.
zrevrangebyscore key max min返回指定区间的成员,分数从高到低
zrevrank key member返回指定成员的排名,按分数递减排序
zscore key member返回有序集合成员分数值
zunionstore destination number key计算交集,并存储在新key 中.
zinterstore
zscan迭代

2.基础操作

# 添加单个元素
127.0.0.1:6379> zadd page_rank 10 google.com
(integer) 1

# 添加多个元素
127.0.0.1:6379> zadd page_rank 9 baidu.com 8 bing.com
(integer) 2

# 根据索引获取元素
127.0.0.1:6379> zrange page_rank 0 -1 withscores
1) "bing.com"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"

# 添加重复元素
127.0.0.1:6379> zadd page_rank 10 google.com
(integer) 0
# sort set 中 score可以重复,但是member不可以重复,sortset 不变
127.0.0.1:6379> zrange page_rank 0 -1 withscores
1) "bing.com"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"

# sort set 中 score可以重复,但是member不可以重复,sortset 不变
# google.com的score发生改变
127.0.0.1:6379> zadd page_rank 7 google.com
(integer) 0
127.0.0.1:6379> zrange page_rank 0 -1 withscores
1) "google.com"
2) "7"
3) "bing.com"
4) "8"
5) "baidu.com"
6) "9"

# 统计信息
127.0.0.1:6379> zcard page_rank
(integer) 3

3.交集并集

交集:zinterstore

并集:zunionstore

cd4c8c6c021f8dbf74ab1b9b681a8ef7.png
wechat
- END -
点击左下角查看更多

71659a0c28279793bb7360b209ccd9f9.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值