Redis - Zset 有序集合
1、有序集合Zset和普通的集合很相似,每个值没有重复数据,每个值是有顺序的,这就是和set的最大区别
2、常用操作命令:
1)zadd <key> <score1> <value1> <score2> <value2>
给键名为 key 的有序集合中添加一个value值和它的score值(顺序?)
value值是真实存放的数据,score只是一个校验顺序的值,通过这个score值来进行排序
2)zrange <key> start end [withscores]:
从键名为 key 的Zset中取值,范围是 start到end,0 -1 表示取出所有值
如果带上 withscores,会将score一起获取到
3)zrangebyscore <key> min max [withscores] [limit offset count]
返回键名为key的Zset中,所有score介于 min和max之间的数据(包含min、max)
还可以限定取值的个数
取出的值从小到大排序
4)zrevrangebyscore <key> min max [withscores] [limit offset count]
和上一个操作类似,取出的值是从大到小排序
5)zincrby <key> <number> <value>:
给键名为key的Zset中的value的score增加number的数量,能达到修改排序的作用
6)zrem <key> <value>:
删除键名为key的Zset中的value值
7)zcount <key> <min> <max>:
统计键名为key的Zset中排序值在 min 和 max 之间的数据个数
3、通过Zset有序集合设计文章的排行榜:
数据形式:
key值:book_top_n
score值:访问数,每次访问 通过 zincrby <key> <number> <value> 进行score值+1
value值:书名
key score value
book_top_n 50 C++从基础到实战
book_top_n 23 Java从基础到实战
book_top_n 13 Php从基础到实战
4、Zset有序集合的数据结构
1)hash存储
2)跳表