Redis - Zset 有序集合


Redis - Zset 有序集合

1、有序集合Zset和普通的集合很相似,每个值没有重复数据,每个值是有顺序的,这就是和set的最大区别

2、常用操作命令:

1)zadd     
给键名为 key 的有序集合中添加一个value值和它的score值(顺序?)
value值是真实存放的数据,score只是一个校验顺序的值,通过这个score值来进行排序

2)zrange  start end [withscores]:
从键名为 key 的Zset中取值,范围是 start到end,0 -1 表示取出所有值
如果带上 withscores,会将score一起获取到
	
3)zrangebyscore  min max [withscores] [limit offset count]
返回键名为key的Zset中,所有score介于 min和max之间的数据(包含min、max)
还可以限定取值的个数
取出的值从小到大排序
			
4)zrevrangebyscore  min max [withscores] [limit offset count]
和上一个操作类似,取出的值是从大到小排序

5)zincrby   :
给键名为key的Zset中的value的score增加number的数量,能达到修改排序的作用

6)zrem  :
删除键名为key的Zset中的value值

7)zcount   :
统计键名为key的Zset中排序值在 min 和 max 之间的数据个数

3、通过Zset有序集合设计文章的排行榜:

数据形式:
	key值:book_top_n
	score值:访问数,每次访问 通过 zincrby    进行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)跳表