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