redis zset
zset
redis zset:有序集合是string类型元素的集合,且不允许重复的成员.每个元素都会关联一个
double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序.有序集合的成员是唯一的,但分数(score)却可以重复.比如排行榜:一个班级的成绩,一个论坛的帖子热度等,有序集合中,每个 元素都有权重
score,依次来对元素进行排序.
1.常用命令
命令 描述 zadd key score1 member1 [score2 member2]向有序集合添加一个或多个成员
或者更新已存在成员的scorezcard 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中.zinterstorezscan迭代
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
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 WenYan Blog!
评论






