Redis课堂笔记 | 青训营

29 阅读2分钟

Redis

1.为啥需要redis

互联网最初的服务架构

image-20230821215350736.png

mysql数据量增长,读写压力增大比如秒杀业务...

因为从内存中读取数据速度更快,因此想把数据存储到内存中,redis应运而生。

image-20230821215616553 - 副本.png

2.Redis的工作原理

服务器重启后,内存中的数据丢失。

image-20230821215823440 - 副本.png

AOF文件redis日志文件保存的redis的操作,通过记录Redis的所有写操作命令到一个追加日志文件来实现持久化的,Redis需要恢复数据时,它会重新执行AOF文件中的所有写操作命令,以恢复到之前的状态。

image-20230821220440007 - 副本.png

RDB文件redis持久化在这种方式下,Redis会在指定的时间间隔内生成一个完整的备份文件。以二进制的格式储存在磁盘上。

image-20230821220450633.png

redis是单线程执行操作的。

3.案例

image-20230821220621717.png

可以利用redis的过期时间, redis的string的数据结构

image-20230821220820003.png

flags 数据类型 buf存储数据

alloc容量 len长度

image-20230821221042347.png

有数据生成就推送消息通知,没有消息就等待,就是一个消息队列。

image-20230821221212045.png

listpack 开辟的大量空间,存储了不止一条数据。

tot-bytes记录整个空间有多大 num-elements元素个数

image-20230821221634424.png

点赞数和阅读数....可能会有多人同时在操作,存入redis中可以缓解数据库的压力。

hash是一个key和value的键值存储数据结构。

利用pipe可以将多条数据打包一起发送至redis )

image-20230821222248423.png 4.

image-20230821222339084.png

redis 中dict结构 采用hash加跳跃表

快速查找:在Redis的dict结构中,可以通过键来快速查找数据。这使得在排行榜中查找数据变得非常高效。

排序方便:Redis的dict结构可以方便地对成员进行排序。这使得我们可以轻松地按照某个分数对排行榜进行排序,以得到最新的排名结果。

image-20230821222700936.png 采用跳跃表可以快速查询的对应的数据

image-20230821222751954.png

image-20230821222751954.png 5.

image-20230821223005300.png

限流通过incr控制访问量

image-20230821223148734.png