栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis 常见数据结构以及使用场景分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis 常见数据结构以及使用场景分析

一,String
  1. 介绍: String数据结构是最简单的key-value类型。
  2. 常用命令: set,get,strlen,exists,decr,incr,setex等。
  3. 应用场景:一般常用在需要计数的场景,比如用户的访问次数,热点文章的点赞转发数量等等。
二,List
  1. 介绍: 一个双端链表的结构,容量是2的32次方减1个元素,大概40多亿。
  2. 常用命令: rpush,lpop,lpush,rpop,lrange,llen等。
  3. 应用场景: 一般用在栈、队列、消息队列等场景。(①微信公众号订阅的消息,②商品评论列表)
三,Hash
  1. 介绍: hash类似于JDK1.8前的HashMap,内部实现也差不多(数组+链表)。不过,Redis的hash做了更多优化。另外,hash 是一个 String 类型的 field 和 value 的映射表,特别适合用于存储对象,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值。 比如我们可以 用hash 数据结构来存储用户信息,商品信息等等。
  2. 常用命令:hset,hmset,hexists,hget,hgetall,hkeys,hvals等。
  3. 应用场景: 系统中对象数据的存储。(京东早期购物车)
四,Set
  1. 介绍: set类似于Java中的HashSet。Redis中的set类型是一种无序集合,集合中ji的元素没有先后顺序。
  2. 常用命令: sadd,sdiff ,sinter,spop,smembers,sismember,scard,sinterstore,sunion等。
  3. 应用场景: 需要存放的数据不能重复以及需要获取多个数据源交集和并集等场景。(微信抽奖小程序,微信朋友圈点赞,QQ内推可能认识的人)
五,Sorted Set
  1. 介绍: 和set相比,sorted set增加了一个权重参数score,使得集合中的元素能够按照score进行有序排列,还可以通过score的范围来获取元素的列表。有点像是Java中HashMap和TreeSet的结合体。
  2. 常用命令: zadd,zcard,zscore,zrange,zrevrange,zrem 等。
  3. 应用场景: 需要对数据根据某个权重进行排序的场景。比如在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕信息(可以理解为按消息维度的信息排行榜)等信息。
六,BitMap
  1. 介绍: bitmap存储的是连续的二进制数字(0和1),通过bitmap,只需要一个bit为来表示某个元素对应的值或者状态,key就是对应元素本身。8个bit可以组成一个byte,所以bitmap本身会极大的节省储存空间。
  2. 常用命令: setbit,getbit,bitcount,bitop
  3. 应用场景: 适用需要保存状态信息(比如是否签到,是否登录…)并需要进一步对这些信息进行分析的场景。比如用户签到情况,活跃用户情况,用户行为统计(比如是否点赞过某个视频)。
七,HyperLogLog
  1. 介绍: hyperloglog是用来做基数统计的算法 。hyperloglog的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的,并且是很小的。在Redis里面,每个hyperloglog键只需要话费12KB内存,就可以计算接近2^64个不同元素的基数。
  2. 常用命令:
  3. 应用场景: ①统计某个网站、某个文字的UV,②用户搜索网站关键词的数量,③统计用户每天搜索不同词条个数。

扩展:

  • UV:独立访客,一般理解为客户端IP,需要去重考虑。
  • PV:页面浏览量,不用去重。
  • DAU:日活跃用户量,登录或使用了某个产品的用户数(去重复登录的用户数)。
  • MAU:月活跃量。
八,GEO
  1. 介绍:主要用于存储地理位置信息,并对存储的信息进行操作。
  2. 常用命令:
  3. 应用场景:美团地图位置附近的酒店推送。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号