Redis 介绍与大厂程序员实践丨青训营笔记

66 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 12 天

本文同步发布于博客(xblc.netlify.app),如果有更新博客会在第一时间更新

第五届青训-Redis-大厂程序员是怎么用的.pptx - 飞书云文档 【后端专场 学习资料七】第五届字节跳动青训营 - 掘金

Redis 是什么

为什么需要 Redis ?

  • 数据出现了分库、分表
  • 数据库从单机变成了集群
    • 数据量
    • 读写压力

image.png

有什么方法能让读写变得更快?

  • 用类似计算机内存的方式,利用把经常用到的热数据存到内存里面

基本工作原理(怎么实现持久化?):

  • 读写数据的时候走的是RESP协议,从内存中读写
  • 怎么保证重启数据不在存储中丢失?
    • 增量数据保存到 AOF 文件
    • 全量数据保存到 ROF 文件
    • Redis 重启的时候会首先加载 dump.rdb文件
    • 然后加载 aof 文件,然后去对比
      • aof每次追加的最后一个部分是RESP协议
  • 单线程处理所有操作命令

image.png

Redis 应用案例

源码在开头的学员手册redis_course: 青训营redis课程Demo

均为掘金的功能模块

连续签到

要求:

  • 连续
  • 每天内的时间限制

做法:

  • 用用户id做 key
  • 存当前已签到天数并设置过期时间

String 数据结构说明:

在工作的时候,基础是很重要的,如果能了解背后的原理,在面试的时候也会很有帮助

  • String的设计很独特,存的是二进制数据,需要很快的读写和节省空间,数据变更的时候需要很快反应
  • 主要是sds的指针的左右操作

image.png

消息通知

list 作为消息队列

Redis 使用注意事项