Redis学习笔记之七:有序集合类型

本文详细介绍了Redis的有序集合类型ZSet,包括其特点、设值/取值、排序功能、获取元素个数、分数范围操作、删除元素、排名与范围删除、获取指定分数范围元素、分数增加以及有序集合间的运算。通过实例展示了ZADD、ZSCORE、ZRANGE、ZREMRANGEBYSCORE等指令的使用,以及如何利用Java SDK进行操作。
摘要由CSDN通过智能技术生成

    Redis最后一种类型是有序集合类型ZSet,即排序的Set,但又与Set不同的是,它比Set多一个字段分数(score)用于排序等操作,从这点来看,相当于Java中的TreeMap,但与Java的TreeMap不同的是,TreeMap排序是指定Comparator对象来排序,通过比较Key来排序,最后构成一棵树。而Redis的ZSet在存储结构上类似于Set。

    1、设值/取值

    使用ZADD指令进行设值。格式ZADD key score value1 score value2...,返回值是成功添加元素的个数。演示如下:score必须是字符串形式的数值类型


    可以看到score必须是一个有效的float类型。而且score的值是可以重复的,但Key的值不能重复。从这点来看与散列类型很相似,只不过在添加时把Key-Value的顺序颠倒了,而且Value还必须是字符串形式的整数。

    ZSCORE指令可以取出对应的值,如上图,取出了Redis中Key为myzset对应的有序集合中Key为b的score。


    在Redis中+inf表示正无穷,-inf表示负无穷。


    2、排序功能(1)

    ZRANGE指令用于获取某一范围的元素并根据score进行从小到大的排序,如果分数一致,则会比较Key,按照字典排序。这个指令与LRANGE指令是一致的。


    其中withscores表示是否显示分数,带上这个参数则单行为Key,双行为score。

    ZREVRANGE与ZRANGE指令一致,可以看成reverse ZRANGE的缩写,所以这个指令是从大到小。



    3、获取有序集合中元素的个数

    指令ZCARD用于获取有序集合中元素的个数,想到了Set的SCARD吧,所以从指令就可以看出这两种数据类型很类似。


    

    4、获取指定分数范围内元素的个数

    ZCOUNT指令用于获取分数在某个范围内的元素个数,格式ZCOUNT zset minScore maxScore。


    可以看到如果minScore大于maxScore是返回0的。


    5、删除元素

    ZREM指令用于删除元素,格式ZREM zset key1 key2.返回值为实际删除元素个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值