Redis - Zset 有序集合

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)跳表

posted @ 2021-12-05 22:36  alisleepy  阅读(134)  评论(0编辑  收藏  举报