Redis

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

Redis到底有多重要?

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

 

基础篇

  • Redis安装
  • Redis基础数据结构
  1. string (字符串)
  2. lit (列表)
  3. hash (字典)
  4. set (集合)

 由于篇幅限制,就只能以这样的形式展示出部分内容了,还望大伙谅解,完整版添加xv:bjmsb10免费获取

 

 

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

应用篇

(分布式锁、延时队列、位图、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成长笔记对于那些渴望进步拓展知识的朋友一定会有帮助!作为程序员的我们千万千万不要停止学习!!一定要为自己以后的架构路打好基础。

推荐阅读:

为什么阿里巴巴的程序员成长速度这么快,看完他们的内部资料我懂了

字节跳动总结的设计模式 PDF 火了,完整版开放分享

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

如果能听懂这个实战项目,哪怕接私活你都可以月入40K

程序员达到50W年薪所需要具备的知识体系。

—小时解读并发编程三大特性

关于【暴力递归算法】你所不知道的思路