现在的位置: 首页 -> PHP学习 -> Redis教程 -> redis有序集合sorted set详解及常用命令

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

2015-09-20 00:23 评论数 0 ⁄ 被浏览 8456 views+

和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。

 

文章出自:https://www.daixiaorui.com/read/196.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

目前有 0 条评论  @我要评论

您的每一个评论都是对我的一份支持

 博客二维码

昵称 *

邮箱 *