这是我参与「第五届青训营」伴学笔记创作活动的第 12 天
本文同步发布于博客(xblc.netlify.app),如果有更新博客会在第一时间更新
第五届青训-Redis-大厂程序员是怎么用的.pptx - 飞书云文档 【后端专场 学习资料七】第五届字节跳动青训营 - 掘金
Redis 是什么
为什么需要 Redis ?
- 数据出现了分库、分表
- 数据库从单机变成了集群
- 数据量
- 读写压力
有什么方法能让读写变得更快?
- 用类似计算机内存的方式,利用把经常用到的热数据存到内存里面
基本工作原理(怎么实现持久化?):
- 读写数据的时候走的是RESP协议,从内存中读写
- 怎么保证重启数据不在存储中丢失?
- 增量数据保存到 AOF 文件
- 全量数据保存到 ROF 文件
- Redis 重启的时候会首先加载 dump.rdb文件
- 然后加载 aof 文件,然后去对比
- aof每次追加的最后一个部分是RESP协议
- 单线程处理所有操作命令
Redis 应用案例
源码在开头的学员手册redis_course: 青训营redis课程Demo
均为掘金的功能模块
连续签到
要求:
- 连续
- 每天内的时间限制
做法:
- 用用户id做 key
- 存当前已签到天数并设置过期时间
String 数据结构说明:
在工作的时候,基础是很重要的,如果能了解背后的原理,在面试的时候也会很有帮助
- String的设计很独特,存的是二进制数据,需要很快的读写和节省空间,数据变更的时候需要很快反应
- 主要是sds的指针的左右操作
消息通知
list 作为消息队列