Redis 学习笔记(六)五大基本数据类型zset

redis的基本数据类型为:

  • string
  • list
  • set
  • hash
  • zset

zset数据类型(sorted sets 有序集合)

zset的命令都以"z"开头:

  zadd <zset> [XX/NX] <score> <member>...  #向有序集合zset中添加成员:
                                           #当添加XX选项时,表示只更新成员,不添加新成员;
                                           #当添加NX选项时,表示不更新成员,只添加新成员;
  zrange <zset> <start> <end> [WITHSCORES] #获取zset中指定范围内的闭区间成员,返回值以score升序排序
                                           #当添加WITHSCORES选项时,表示同时返回指定范围内的成员和score
  zrangebyscore <zset> <min> <max> [WITHSCORES] #获取zset中指定范围内的闭区间成员,返回值以score升序排序
                                           #min和max可写为-inf和+inf,表示获取zset中以score升序排序的全部成员
                                           #当min和max前面加上(,代表开区间
                                           #例: zrangebyscore zset (1 (5  =>  1 < score < 5
  zrevrange <zset> <start> <end> [WITHSCORES] #获取zset中指定范围内的闭区间成员,返回值以score降序排序
  zrevrangebyscore <zset> <max> <min> [WITHSCORES] #获取zset中指定范围内的闭区间成员,返回值以score降序排序

  zrem <zset> <member>...      #移除zset中指定的成员,返回移除的成员个数
  zcard <zset>                 #获取zset中成员个数
  zcount <zset> <min> <max>    #获取zset中指定闭区间范围内的成员个数
  zrank <zset> <member>        #获取zset中指定成员member的排名,排名从0开始

  #交集、并集
  zinterstore <zset> <setnums> <zset1> <zset2>... [WEIGHTS weight] [SUM|MIN|MAX] 
  #获取给定的setnums个zset1、zset2等集合的交集放入zset中
  #setnums参数写给定集合的个数
  #[WEIGHTS weight]选项:为每个给定集合指定一个乘法因子,每个给定集合成员的score值在传递给聚合函数之前都要先乘以该因子。
  #如果WEIGHTS没有给定,默认就是1。
  #[SUM|MIN|MAX] 选项:指定并集的结果集的聚合方式。
  #默认参数为sum可不写,将所有集合中某个成员的score值之和作为结果集中该成员的score值。
  #如果使用参数MIN或者MAX,结果集就是所有集合中元素最小或最大的元素。

例:

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 2
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "two"
4) "10"
 zunionstore <zset> <setnums> <zset1> <zset2>... [WEIGHTS weight] [SUM|MIN|MAX] 
 #获取给定的setnums个zset1、zset2等集合的并集放入zset中

例:

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值