Redis缓存 | 青训营笔记

73 阅读2分钟

1.redis九种数据类型

1,string:最基本的数据类型,二进制安全的字符串,最大512M。

2,list:按照添加顺序保持顺序的字符串列表。

3,set:无序的字符串集合,不存在重复的元素。

4,sorted set:已排序的字符串集合。

5,hash:key-value对的一种集合。

6,bitmap:更细化的一种操作,以bit为单位 (string类型)。

7,hyperloglog:基于概率的数据结构。 # 2.8.9新增

8,Geo:地理位置信息储存起来, 并对这些信息进行操作 # 3.2新增

9,流(Stream)# 5.0新增

2.Redis Stream详细介绍

Redis Stream 是 Redis 5.0 版本新增加的数据结构。Redis Stream 主要用于消息队列(MQ,Message Queue),Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。

3.Redis使用时出现的问题以及解决

① 缓存穿透:大量请求根本不存在的key(下文详解)

② 缓存雪崩:redis中大量key集体过期(下文详解)

③ 缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热点key过期)

穿透解决方案:

对空值进行缓存

设置白名单

使用布隆过滤器

网警

雪崩解决方案:

进行预先的热门词汇的设置,进行key时长的调整

实时调整,监控哪些数据是热门数据,实时的调整key的过期时长

使用锁机制

击穿解决方案:

进行预先的热门词汇的设置,进行key时长的调整

实时调整,监控哪些数据是热门数据,实时的调整key的过期时长

使用锁机制(只有一个线程可以进行热点数据的重构)