写点什么

Redis 不止缓存!百度强推“Redis 成长笔记”我粉了!

发布于: 2021 年 02 月 25 日

Redis


相信大家对于 Redis 第一印象都是“缓存”,它相比 Memcache 而言更加易于理解、使用和控制。但 Redis 作为互联网技术领域使用最为广泛的存储中间件,其实还是有很多其他的应用场景的。当系统的并发量达到一定的量级,流量涨上来了,Redis 的其他功能就需要应用起来了。


Redis 到底有多重要?


先不提其超高的性能,就国内外很多大型互联网公司以及很多中小型公司都有应用这一点就能表明,Redis 已成为当下中高级后端开发者绕不开的必备技能!如果不能深入地了解 Redis 背后的深层原理,很多问题根本无法理解到本质,更谈不上解决。那么要如何对 Redis 知其然也知其所以然,为未来进阶成长为架构师做好准备呢?不要慌,互联网雷锋(小编我)前段时间我刚好从百度一位朋友那里得到一份其内部“Redis 成长笔记”,看完真的差距不止一点点!


这份笔记一共有 6 大部分,由于篇幅限制,只能以截图主要内容的形式展示出来了,一键三连+评论,然后添加我的 VX(tkzl6666)即可免费领取。




基础篇


  • Redis 安装

  • Redis 基础数据结构


  1. string (字符串)

  2. lit (列表)

  3. hash (字典)

  4. set (集合)



  • 容器型数据结构的通用规则


应用篇


(分布式锁、延时队列、位图、HyperLogLog、布隆过滤器、简单限流、漏斗限流、GeoHash、Scan)


  • 分布式锁


  1. 分布式锁

  2. 超时问题

  3. 可重入性



  • 位图


  1. 基本使用

  2. 统计和查找

  3. 魔术指令 bitfield



  • 布隆过滤器


  1. 布隆过滤器是什么?

  2. Redis 中的布隆过滤器

  3. 布隆过滤器基本使用

  4. 注意事项

  5. 布隆过滤器的原理

  6. 空间占用估计

  7. 实际元素超出时,误判率会怎样变化

  8. 用不上 Redis4.0 怎么办?

  9. 布隆过滤器的其它应用



  • 漏斗限流


  1. Redis-Cell

  2. 小结



原理篇


(线程 IO 模型、通信协议、持久化、管道 、事务、PubSub、小对象压缩、主从同步)


  • 线程 IO 模型


  1. 非阻塞 IO

  2. 事件轮询(多路复用)

  3. 指令队列

  4. 响应队列

  5. 定时任务



  • 持久化


  1. 快照原理

  2. fork(多进程)

  3. AOF 原理

  4. AOF 重写

  5. fsync

  6. 运维

  7. Redis 4.0 混合持久化



  • 主从同步


  1. CAP 原理

  2. 最终一致

  3. 主从同步

  4. 增量同步

  5. 快照同步

  6. 增加从节点

  7. 无盘复制

  8. Wait 指令



集群篇


(Sentinel、Codis、Cluster)


  • Sentinel


  1. 消息丢失

  2. Sentinel 基本使用



  • Codis


  1. Codis 分片原理

  2. 不同的 Codis 实例之间槽位关系如何同步?

  3. 扩容

  4. 自动均衡

  5. Codis 的代价

  6. Codis 的优点

  7. MGET 指令的操作过程

  8. 架构变迁

  9. Codis 的尴尬

  10. Codis 的后台管理



  • Cluster


  1. 槽位定位算法

  2. 跳转

  3. 迁移

  4. 容错

  5. 网络抖动

  6. 可能下线(PALPossibll Fail 与确定下线(Fail)

  7. Cluster 基本使用

  8. 槽位迁移感知

  9. 集群变更感知



拓展篇


(Stream、Info 指令、再谈分布式锁、过期策略、LRU、懒惰删除、优雅地使用 Jedis、保护 Redis、Redis 安全通信)


  • 再谈分布式锁


  1. Redlock 算法

  2. Redlock 使用场景



  • LRU


  1. LRU 算法

  2. 近似 LRU 算法

  3. 扩展阅读



  • Redis 安全通信


  1. spiped 原理

  2. spiped 使用入门



源码篇


(探索「字符串」、「字典」、「[压缩列表」、「快速列表」、「跳跃列表」、「紧凑列表」、「基数树」内部结构)


  • 字符串


  1. embstr vs raw

  2. 扩容策略



  • 探索「跳跃列表」内部结构


  1. 基本结构

  2. 查找过程

  3. 随机层数

  4. 插入过程

  5. 删除过程

  6. 更新过程

  7. 如果 score 值都-样呢?

  8. 元素排名是怎么算出来的?



  • 探索「基数树」内部


  1. 应用

  2. 结构

  3. 增删节点



由于篇幅限制,就只能以这样的形式展示出部分内容了,还望大伙谅解


写在最后


Redis 涉及的知识点是非常繁多的,单靠一份笔记肯定无法顾及到 Redis 的方方面面,但这份 Redis 成长笔记对于那些渴望进步拓展知识的朋友一定会有帮助!作为程序员的我们千万千万不要停止学习!!一定要为自己以后的架构路打好基础。

一键三连+评论,然后添加我的 VX(tkzl6666)即可免费领取。




用户头像

微信:tkzl6666 添加获取你想要的Java资料 2019.01.29 加入

添加VX(tkzl6666 ) 获取大厂面试真题,面试复习资料,Java进阶资料,Java实战项目。

评论 (1 条评论)

发布
用户头像
Redis 不止缓存!百度强推“Redis 成长笔记”我粉了!
2021 年 02 月 25 日 14:59
回复
没有更多了
Redis不止缓存!百度强推“Redis成长笔记”我粉了!