写点什么

花费半个月啃完这份滴滴 Redis 核心手抄本,我终于把面试官按在地上摩擦了

作者:程序知音
  • 2022-12-09
    湖南
  • 本文字数:1969 字

    阅读完需:约 6 分钟

在请求压力不大的情况下,很多数据都是可以直接从数据库中查询的。但请求压力一大,以前通过数据库直接存取的数据则必须要挪到缓存里来。这也是很多小型公司用不到 Redis 的原因。

但是众所周知,程序员面试往往都是面试坐火箭入职拧螺丝,不用并不代表面试官不问,所以我们还是要去学习 Redis 的。(小公司并不能代表以后不能成为大公司,而是可以为以后的技术做准备~)

**今天就来分享一下滴滴 Redis 内部核心手册的手抄本,这份 Redis 手册涵盖了基础入门、原理、应用、集群、拓展延伸、源码等内容,每个小节后面括号里面就是会讲到的内容,由于内容太多,就不能为大家全部截图出来!只能展示部分内容

完整的手抄本已经为大家整理成 PDF 格式

【有需要的可以--> 点击这里即获取我的资料笔记 <--- 即可

点击免费领取:Redis 实战到底层进阶电子版教程

Redis 基础入门

Redis 安装、Redis 基础数据结构(string (字符串)、list (例表) 、hash (字典)、set (集合))、容器型数据结构的通用规则

Reis 原理部分

一、线程 IO 模型(非阻塞 IO、事件轮询(多路复用)、指令队列、响应队列、定时任务

二、通信协议(RESP(Redis Serialization Protocol)、客户端->服务器、服务器->客户端

三、持久化(快照原理、fork(多进程)、AOF 原理、AOF 重写、fsync、运维、Redis 4.0 混合持久化

四、管道(Redis 的消息交互、管道压力测试、深入理解管道本质

五、事务(Redis 事务的基本使用、原子性、discard(丢弃)、优化、Watch


六、PubSub(消息<typo id="typo-701" data-origin="多播" ignoretag="true">多播</typo>、PubSub、模式订阅、消息结构、PubSub 缺点

七、小对象压缩(32bit vs 64bit、小对象压缩存储(ziplist)、内存回收机制、内存分配算法

八、主从同步(CAP 原理、最终一致、主从同步、增量同步、快照同步、增加从节点、无盘复制、Wait 指令

Redis 应用部分

一、分布式锁(分布式锁、超时问题、可重入性

二、延时队列(异步消息队列、队列空了怎么办?、队列延迟、空闲连接自动断开、锁冲突处理、延时队列的实现、进一步优化


三、位图(基本使用、统计和查找、魔术指令 bitfield

四、HyperLogLog(使用方法、pfadd 这个 pf 是什么意思?、pfmerge 适合什么场合用?、注意事项、HyperLogLog 实现原理、pf 的内存占用为什么是 12k?

五、布隆过滤器(布隆过滤器是什么?、Redis 中的布隆过滤器、布隆过滤器基本使用、注意事项、布隆过滤器的原理、空间占用估计、实际元素超出时,误判率会怎样变化、用不上 Redis4.0 怎么办?布隆过滤器的其它应用


六、简单限流(如何使用 Redis 来实现简单限流策略?解决方案

七、漏斗限流(Redis-Cell

八、GeoHash(用数据库来算附近的人、GeoHash 算法、Redis 的 Geo 指令基本使用

九、Scan(scan 基础使用、字典的结构、scan 遍历顺序、字典扩容、对比扩容缩容前后的遍历顺序、渐进式 rehash、更多的 scan 指令、大 key 扫描

Redis 集群部分

一、Sentinel(消息丢失、Sentinel 基本使用

二、Codis(Codis 分片原理、不同的 Codis 实例之间槽位关系如何同步?、扩容、自动均衡、Codis 的代价、Codis 的优点、MGET 指令的操作过程、架构变迁、Codis 的尴尬、Codis 的后台管理

三、Cluster(槽位定位算法、跳转、迁移、容错、网络抖动、可能下线(PFAIL-Possibly Fail)与确定下线(Fail)、Cluster 基本使用、槽位迁移感知、集群变更感知

Redis 拓展部分

一、Stream(消息 ID、消息内容、增删改查、独立消费、创建消费组、消费、Stream 消息太多怎么办?、消息如果忘记 ACK 会怎样?、PEL 如何避免消息丢失?、Stream 的高可用、分区 Partition


二、Info 指令(Redis 每秒执行多少次指令?、Redis 连接了多少客户端?Redis 内存占用多大?、复制积压缓冲区多大?

三、再谈分布式锁(Redlock 算法、Redlock 使用场景

四、过期策略(过期的 key 集合、定时扫描策略、从库的过期策略

五、LRU(LRU 算法、近似 LRU 算法

六、懒惰删除(Redis 为什么要懒惰删除(lazy free)?、flush、异步队列、AOF Sync 也很慢、更多异步删除点

七、优雅地使用 Jedis

八、保护 Redis (指令安全、端口安全、Lua 脚本安全、SSL 代理

九、Redis 安全通信(spiped 原理、spiped 使用入门

Redis 源码学习部分

一、学习(字符串)内部结构(embstr vs raw、扩容策略

二、学习(字典)内部(dict 内部结构、渐进式 rehash、查找过程、hash 函数、hash 攻击、扩容条件、缩容条件、set 的结构


三、学习(压缩列表)内部(增加元素、级联更新、IntSet 小整数集合

四、(快速列表)内部(每个 ziplist 存多少元素?、压缩深度

五、学习(跳跃列表)内部结构(基本结构、查找过程、随机层数、插入过程、删除过程、更新过程、如果 score 值都一样呢?元素排名是怎么算出来的?


六、学习(紧凑列表)内部(级联更新、取代 ziplist

七、学习(基数树)内部(应用、结构、增删节点

【有需要的可以--> 点击这里即获取我的资料笔记 <--- 即可

用户头像

程序知音

关注

还未添加个人签名 2022-06-25 加入

还未添加个人简介

评论

发布
暂无评论
花费半个月啃完这份滴滴Redis核心手抄本,我终于把面试官按在地上摩擦了_Java_程序知音_InfoQ写作社区