Redis Zset有序集合
1.zadd 添加一个或多个值 并且区分SCORE
向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZADD zset集合 SCORE1 v1.. SCOREN vN
2.zrange 返回有序集合区间
通过索引区间返回有序集合成指定区间内的成员
ZRANGE zset集合 start stop [WITHSCORES]
3.zrangebyscore 通过分数score排名,从低到高
通过分数返回有序集合指定区间内的成员
ZRANGEBYSCORE zset集合 min max [WITHSCORES] [LIMIT offset count]
redis 127.0.0.1:6379> ZADD salary 2500 jack # 测试数据
(integer) 0
redis 127.0.0.1:6379> ZADD salary 5000 tom
(integer) 0
redis 127.0.0.1:6379> ZADD salary 12000 peter
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf # 显示整个有序集
1) "jack"
2) "tom"
3) "peter"
redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf WITHSCORES # 显示整个有序集及成员的 score 值
1) "jack"
2) "2500"
3) "tom"
4) "5000"
5) "peter"
6) "12000"
redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf 5000 WITHSCORES #显示工资 <=5000 的所有成员
1) "jack"
2) "2500"
3) "tom"
4) "5000"
redis 127.0.0.1:6379> ZRANGEBYSCORE salary (5000 400000 # 显示工资大于 5000 小于等于 400000 的成员
1) "peter"
4.Zrevrangebyscore通过分数score排名,从高到低
返回有序集中指定分数区间内的成员,分数从高到低排序
ZREVRANGEBYSCORE zset集合 max min [WITHSCORES] [LIMIT offset count]
redis 127.0.0.1:6379> ZADD salary 10086 jack
(integer) 1
redis > ZADD salary 5000 tom
(integer) 1
redis 127.0.0.1:6379> ZADD salary 7500 peter
(integer) 1
redis 127.0.0.1:6379> ZADD salary 3500 joe
(integer) 1
redis 127.0.0.1:6379> ZREVRANGEBYSCORE salary +inf -inf # 逆序排列所有成员
1) "jack"
2) "peter"
3) "tom"
4) "joe"
redis 127.0.0.1:6379> ZREVRANGEBYSCORE salary 10000 2000 # 逆序排列薪水介于 10000 和 2000 之间的成员
1) "peter"
2) "tom"
3) "joe"
5.Zrevrangebyscore通过分数score排名,从高到低
移除有序集合中的一个或多个成员
ZRANK zset集合 值1 值2 ....
6.zcard 计算zset有序集合中的个数
获取有序集合的成员数
ZCARD zset集合
7.Zrevrange 返回值 通过索引,分数从高到底
返回有序集中指定区间内的成员,通过索引,分数从高到底
ZREVRANGE key start stop [WITHSCORES]
8.Zrevrange 获取指定区间的成员数量
计算在有序集合中指定区间分数的成员数
ZCOUNT key min max
总结使用
1.成绩表
2.工资表
使用zset
权重执行判断