Zset是一个没有重复元素的字符串集合,每个元素带有一个评分,集合的排序按照评分大小进行排序,从低评分到高评分排序。

因为元素是有序的,因此查找元素时,可以根据查找范围加快查找效率,集合元素是唯一的,但评分可以有重复。

1、zadd key scope1 value1 ... :添加一个或多个元素以及对应评分到集合key中:

(集合会根据评分从小到大排序元素)

//结果:{zhangsan,lisi,wangwu}
zadd money 100 lisi 40 zhansan 300 wangwu

2、zrange key start end:遍历集合key,start为开始遍历下标,end为结束下标:

(在最后加上withscores可以查看对应评分)

//money={zhangsan,lisi,wangwu}

//遍历下标为0到1到元素
//结果:zhangsan,lisi
zrange money 0 1

3、zrangebyscore key min max :遍历集合中元素评分中min到max之间的元素,min为查找最小评分,max为查找最大评分(查找出来的值从小到大排序):

//money={
    lisi:100,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}

//遍历评分为100到350之间到元素
//结果为:lisi,zhansan,wangwu
zrangebyscore money 100 350

4、zrevrangebyscore key max min :遍历集合中元素评分中min到max之间的元素,min为查找最小评分,max为查找最大评分(查找出来的值从大到小排序):

//money={
    lisi:100,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}

//遍历评分为100到350之间到元素
//结果为:wangwu,zhansan,lisi
zrevrangebyscore money 350 100

5、zincrby key increment value :为集合中的value元素所对应的评分·加上增量increment;

//money={
    lisi:100,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}

//为lisi的评分加10
//结果:money={
    lisi:110,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}
zincrby money 10 lisi

6、zrem key value :删除集合key中值为value的元素:

//money={
    lisi:100,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}

//删除lisi元素
//结果:money={
    zhansan:250,
    wangwu:300,
    xiaoming:400
}
zrem money lisi

7、zcount key min max :统计集合key中,值在min和max之间的个数:

(包括min和max值)

//money={
    lisi:100,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}

//统计值为100到300之间个数
//结果:3
zcount money 100 300

8、zrank key value :返回集合key中value的排名,从0开始:

//money={
    lisi:100,
    zhansan:250,
    wangwu:300,
    xiaoming:400
}

//结果:1
zrank money zhansan