Redis常见数据结构使用场景

  • 作者: 凯哥Java(公众号:凯哥Java)
  • Redis
  • 时间:2020-11-03 18:18
  • 4182人已阅读
简介 String常用命令: set,get,decr,incr,mget 等。1String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。常规key-value缓存应用;计数功能的缓存:微博数,粉丝数等。6.2Hash常用命令: hget,hset,hgetall 等。1Hash是一个string类型的field和v

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

String

常用命令: set,get,decr,incr,mget 等。1
  • String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字

  • 常规key-value缓存应用;

  • 计数功能的缓存:微博数,粉丝数等。

6.2 Hash

常用命令: hget,hset,hgetall 等。1

Hash是一个string类型的fieldvalue(<key,value>)的映射表,hash特别适合用于存储对象。 比如我们可以Hash数据结构来存储用户信息,商品信息等等。

  • 在做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果

6.3 List

常用命令: lpush,rpush,lpop,rpop,lrange等1

list就是链表,Redis list的应用场景非常多,也是Redis最重要的数据结构之一,比如微博的关注列表,粉丝列表,最新消息排行等功能都可以用Redis的list结构来实现。

Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销

使用List的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。

6.4 Set

常用命令:
sadd,spop,smembers,sunion 等12

set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的(没有重复的数据)。

可以做全局去重的功能。为什么不用JVM自带的Set进行去重?因为我们的系统一般都是集群部署,使用JVM自带的Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。

另外,就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。

6.5 Sorted Set

常用命令: zadd,zrange,zrem,zcard等1

和set相比,sorted set增加了一个权重参数score,使得集合中的元素能够按score进行有序排列

举例: 在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等信息,适合使用Redis中的SortedSet结构进行存储。

可以做排行榜应用取TOP N操作。最后一个应用就是可以做范围查找


https://blog.csdn.net/csdnlijingran/article/details/88068598

上一篇: Redis面试题总结

下一篇: Java 面试题总结

TopTop