redis五种数据类型之zset(有序列表)

  前言:zset(有序列表)可能是redis中提供的最有特殊的数据类型,它也是面试官中最喜欢稳到的数据类型,一方面它是一个set(无序列表),可以保证它内部的value唯一性,去重。另一个方面它可以给每个value一个权重,代表这个value的排序权重,当zset中最后一个元素被删除时,数据结构被自动删除,内存被回收,zset可以用来做存储好友列表,value是好友的用户id,权重是添加时间,我们可以对添加时间进行排序,另外,我们也可以对一些成绩、得分的功能进行,只要对成绩、得分进行排序就可以得到他们的名次
  下面我们开始示例:
  语法:zadd   key    权重   value
   顺序查看列表:zrange   key   从哪里开始   从哪里结束 (权重作为排序列出)
   逆序查看列表:zrevrange   key   从哪里开始   从哪里结束(权重作为排序列出)
在这里插入图片描述
  统计长度:zcard   key
在这里插入图片描述
  获取指定value的权重:zscore   key  value   注:权重内部使用doubel类型进行存储,所有会有小数点精度问题
在这里插入图片描述
  获取权重:zrank   key  value
在这里插入图片描述
  根据分值区间遍历:zrangebyscore   key  权重区间
在这里插入图片描述
  根据分值区间遍历有序列表,同时返回分值,inf代表infinite,无穷大的意思:zrangebyscore   key  int 权重区间   withscores
在这里插入图片描述
  删除value:zrem   key  value
在这里插入图片描述

  到这里,redis的基础就不多了,有兴趣的可以点击我的博客查看其它类型的用法,在这里其实,redis的有序列表设计到一个跳跃列表,有兴趣的可以去了解一下,下面的文章的话,笔者会写一些进阶篇的,由于笔者的语言是php,所有接有设计到代码的示例,会以php的形式写出来,如果你是其他语言,可以借鉴php的代码来借鉴


版权声明:本文为weixin_44320900原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。