前言
作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。

毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要使用,可见精通Redis使用真的很有必要。

所以,今天则分享出腾讯云大神亲自码出的“redis深度笔记”,笔记内容没有讲一句废话,全篇看下来都是精华!

需要Redis深度笔记PDF版的,点击文章开头链接,即可免费领取。
图片说明
PART1:Redis深度笔记开篇
1.Redis可以用来做什么?

由Redis面试想到的
Redis可以做什么?
图片说明
2.Redis基础数据结构

Redis安装
Redis基础的数据结构
容器型数据结构的通用规则
关于Redis使用的一些思考
图片说明
PART2:Redis的应用总结
1.分布式锁

分布式锁
超时问题
可重入性
图片说明
.延时队列

异步消息队列?
队列空了怎么办?
队列延迟
空闲连接自动断开
锁冲突处理
延时队列的实现
进一步优化
图片说明
3.位图

基本使用
统计和查找
魔术指令 bitfield
图片说明
4.HyperLogLog

使用方法
pfadd这个pf是什么意思?
pfmerge适合什么场合用?
注意事项
HyperLogLog实现原理
pf的内存占用为什么是12k?
图片说明
5.布隆过滤器

布隆过滤器是什么?
Redis中的布隆过滤器
布隆过滤器的基本使用
注意事项
布隆过滤器的原理
空间占用估计
实际元素超出时,误判率会怎样变化?
用不上Redis4.0怎么办?
布隆过滤器的其他应用
图片说明
6.简单限流

如何使用Redis来实现简单限流策略?
图片说明
7.漏斗限流

Redis-Cell
一些思考
图片说明
8.GeoHash

用数据库来算附近的人
GeoHash算法
Redis的Geo指令基本使用
图片说明
9.Scan

scan基础使用
字典的结构
scan遍历顺序
字典扩容
对比扩容缩容前后的遍历顺序
渐进式rehash
更多的scan指令
大Key扫描
图片说明
PART3:Redis的原理
1.线程IO模型

非阻塞IO
事件轮询(多路复用)
指令队列
响应队列
定时任务
图片说明
2.通信协议

RESP(Redis Serialization Protocol)
客户端->服务端
服务端->客户端
图片说明
3.持久化

快照原理
fork(多进程)
AOF原理
AOF重写
fsync
运维
Redis4.0混合持久化
图片说明
4.管道

Redis的消息交互
管道压力测试
深入理解管道本质
图片说明
5.事务

discard(丢弃)
Redis事务的基本使用
原子性
优化
Watch
图片说明
6.PubSub

消息多播
PubSub
模式订阅
消息结构
PubSub缺点
图片说明 图片说明
7.小对象压缩

32bit vs 64bit
小对象压缩存储(ziplist)
内存回收机制
内存分配算法
图片说明
8.主从同步

CAP原理
最终一致
主从同步
增量同步
快照同步
增加从节点
无盘复制
Wait指令
图片说明
PART4:Redis集群
1.Sentinel

消息丢失
Sentinel基本使用
图片说明
2.Codis

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

槽位定位算法
跳转
迁移
容错
网络抖动
可能下线(PFAIL-Possibly Fail)与确定下线(Fail)
Cluster基本使用
槽位迁移感知
集群变更感知
图片说明
PART5:Redis拓展
1.Stream

消息ID
消息内容
增删改查
独立消费
创建消费组
消费
Stream消息太多怎么办?
消息如果忘记ACK会怎样?
PEL如何避免消息丢失?
Stream的高可用
分区Partition
图片说明
2.Info指令

Redis每秒执行多少次指令?
Redis连接了多少客户端?
Redisn内存占用多大?
复制积压缓存区多大?
图片说明
3.再谈分布式锁

Redlock算法
Redlock使用场景
图片说明
4.过期策略

过期的key集合
定时扫描策略
从库的过期策略
图片说明
5.LRU

LRU算法
近似LRU算法
图片说明
6.懒惰删除

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

图片说明
7.优雅地使用Jedis

重试
图片说明
8.保护Redis

指令安全
端口安全
Lua脚本安全
SS图片说明 L代理

9.Redis安全通信

spiped原理
spiped使用入门
图片说明
PART6:源码
1.探索字符串内部结构

embstr vs raw
图片说明 扩容策略
2.探索字典内部

dict 内部结构
渐进式rehash
查找过程
hash 函数
hash攻击
扩容条件

缩容条件
set的结构
图片说明
3.探索压缩列表内部

增加元素
级联更新
IntSet 小整数集合
图片说明
4.探索快速列表内部

每个ziplist存多少元素?
压缩深度
图片说明
5.探索跳跃列表内部结构

基本结构
查找过程
随机层数
插入过程
删除过程
更新过程
如果score值都一样呢?
元素排名是怎么算出来的?
图片说明
6.探索紧凑列表内部

级联更
取代ziplist
图片说明
7.探索基数树内部

应用
结构
增删节点
图片说明
总结
最后,我想说的是,学习并非难事,而贵在坚持,尤其是在我们参与工作之后,要继续坚持学习就更不容易了。但对于程序员来说,学习是立业之根本,如若放弃学习,被市场淘汰是迟早的事情。所以,学习更多新的知识对于自己来说才是一种更大的投资。

以上,到此结束。

提醒,Redis深度笔记免费分享,需要的完整pdf的朋友,点击文章开头链接,免费获取