码迷,mamicode.com
首页 > 其他好文 > 详细

[redis数据结构] 之 zset(有序集合)

时间:2014-09-07 18:39:26      阅读:1312      评论:0      收藏:0      [点我收藏+]

标签:redis 数据类型 zset

    上一篇讲述了无序set集合的使用命令,本文将讲述zset(有序集合)的使用命令以及实例。zset的一个元素由权重和值构成,权重表示的是位置,也就是有序的来由。

    1、如果添加一个有序集合元素

语法:zadd [zset集合] [权重(数值类型)] [元素值]# 默认是权重由小到大排列

 范例:

  bubuko.com,布布扣

  阐述:在无序集合中,sadd一个已经存在的元素,是不存添加成功的;虽然在zset中添加一个已经存在的元素也无法添加,但是会可以修改其新设置的元素权重。

  例如:

  bubuko.com,布布扣

  2、如果删除一个元素

 语法:zrem [zset集合]

  范例:

      bubuko.com,布布扣

  3、遍历有序集合

# 权重从小到大排列遍历
语法1:zrange [zset集合] [开始索引] [结束索引] <withscores>

# 权重从大到小排列遍历
语法2:zrevrange [zset集合] [开始索引] [结束索引] <withscores>

 范例:

 bubuko.com,布布扣

 阐述:语法包含withscores是表示显示权重。

  4、自增/自减元素权重

语法:zincrby [zset集合] [步长] [元素] # 返回元素的权重
描述:如果元素不存在,那么添加元素,并设置权重为指定步长,否则修改元素的权重为自增或自减的结果。

 范例:修改51cto2元素的权重为7

 bubuko.com,布布扣

 

  5、获取元素的索引位置

# 按照权重升序取索引(从小到大)
语法1:zrank [zset集合] [元素] # 获取指定元素的索引位置

# 按照权重降序取索引(从大到小)
语法2:zrevrank [zset集合] [元素]

 范例:分别按照降序和升序去出51cto2元素的索引值(索引是从0开始的)

 bubuko.com,布布扣

  6、获取某个权重区间的元素列表

语法:zrangebyscore [zset集合] [起始权重] [结束权重] <withscores>
描述:获取某个权重区间的元素,withscores选项与zrange一致

 范例:获取权重3,4之间的元素

 bubuko.com,布布扣

  7、获取某个权重区间的元素个数

语法:zcount [zset集合] [起始权重] [结束权重] # 返回元素个数

 范例:获取权重3到4之间的元素个数

 bubuko.com,布布扣

  8、获取指定元素的权重

语法:zscore [zset集合] [元素] # 返回元素的权重数值

 范例:获取51cto2的权重

 bubuko.com,布布扣

  9、获取集合大小

语法:zcard [zset集合] # 返回集合元素大小

 范例:获取set1集合的元素个数

 bubuko.com,布布扣

  10、批量删除

# 按照索引位置批量删除
语法1:zremrangebyrank [zset集合] [开始索引] [结束索引] 

# 按照权重区间批量删除
语法2: zremrangebyscore [zset集合] [开始索引] [结束索引]

 范例:

 bubuko.com,布布扣

                            

本文出自 “java程序冥” 博客,请务必保留此出处http://793404905.blog.51cto.com/6179428/1549770

[redis数据结构] 之 zset(有序集合)

标签:redis 数据类型 zset

原文地址:http://793404905.blog.51cto.com/6179428/1549770

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!