Redis操作ZSet取固定分数值
Redis的Set集合是string类型的无序集合,集合成员是唯一的,redis的集合都是通过hash实现的,所以添加,删除,查找的时间复杂度都为O(1)
而且Zset通过自己指定排序方式,可以实现有序集合,zset集合是没有重复元素的集合,在加上redis的自增,所以可以用来存储一些排行榜数据
连接redis,查看历史
history | grep redis
redis-cli -h 172.31.63.82 -p 6380
获取key的范围数据(分页操作)
zrange key start end WITHSCORE
由于zset有序,可以通过incrementScore设置增量值
对有序集合中的指定成员的分数加上increment
zincrby key increment member
代码操作为
RedisTemplate.opsForZSet().incrementScore(key, increment, number);
返回值为增加后的值
如果想返回指定范围的数据,并且需要满足自定义区间的值可以用下面命令
zrangebyscore key min max withscores [LIMIT offset count]
返回score值在[min, max]范围内offset或者limit的值,包括min和max并且按照score自增(从小到大)
ZRANGEBYSCORE book_key_word_100010019 1 10 LIMIT 0 10
如果想让结果为从大到小排序,使用zreverse
代码操作
RedisTemplate.opsForZSet().reverseRangeByScoreWithScores(key, min, max, offset, count);
offse表示以某个元素为偏移量, count表示条数,同分页操作