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表示条数,同分页操作

posted @ 2022-06-04 20:36  木马不是马  阅读(2037)  评论(0编辑  收藏  举报