PHP程序员学习笔记|如何学习PHP

个人总结的PHP学习方法


redis有序集合sorted set详解及常用命令

2017-6-28 0phpcom 经典文章


和set类型一样,sorted set也是string类型元素的集合,因为元素是有序的,所以使用有序集合你可以以非常快的速度(O(log(N)))添加,删除和更新元素,它也很擅长排序。


应用场景:获取网站中点击量最高的前n篇文章,等等。


为了详细的解释下面每个命令,先拟定一个应用场景;假设用sorted set记录网站每篇文章的点击量,如果key为artHits,则:


1.【 zadd key v k 】 往key中添加一个元素,k为键,v为值。如:zadd artHits 99 12表示id为12的文章点击量为99次。

2.【 zrange key start end 】 根据v的值由小到大进行排序来获得start到end之间的元素。

注:0表示第一个元素,-1表示最后一个元素,-2表示倒数第二个元素,以此类推,如果要获取第一个到倒数第三个之间的元素,命令为:zrange key 0 -3。

3.【 zrevrange key start end 】 同上,根据v的值由大到小进行排序来获得start到end之间的元素。可以轻松取出点击量最高的前n篇文章。

4.【 zremrangebyrank key start end 】 删除集合中的元素。排序的方式为按照v由小到大的顺序,如果要删除key集合中的第一个值,则运行 zremrangebyrank artHits 0 0;删除前3个值:zremrangebyrank artHits 0 2。

5.【 zcard 】 返回key集合中元素的个数。

6.【 zrank key k 】 返回值k在集合key中排第几位,是按照v由小到大的顺序。排第一名返回0,第二返回1,以此类推。

7.【 zrevrank key k 】 同上,不同的是,按照v由大到小的顺序。可以轻松取出点击量最高的文章。

8.【 zscore key k 】 取出集合key中键为k对应的值v。

9.【 zrem key k 】 删除集合中指定元素。

10.【 zincrby key num k 】 给集合key中的元素k加上num,值针对整型。比如 zincrby artHits 3 12,给id为12的文章加上3个点击量。此时zscore artHits 12的结果是99+3为102。

« redis无序集合set类型详解_常用命令 | redis中hash类型介绍和命令详解»
发表评论:









订阅Rss