关于redis:腾讯云大佬亲码redis深度笔记不讲一句废话全是精华

47次阅读

共计 2109 个字符,预计需要花费 6 分钟才能阅读完成。

前言

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

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

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

须要 Redis 深度笔记 PDF 版的敌人,点击传送门 即可获取到了(手速快的曾经上车了)

PART1:Redis 深度笔记开篇

1.Redis 能够用来做什么?

  • 由 Redis 面试想到的
  • Redis 能够做什么?

2.Redis 根底数据结构

  • Redis 装置
  • Redis 根底的数据结构
  • 容器型数据结构的通用规定
  • 对于 Redis 应用的一些思考

PART2:Redis 的利用总结

1. 分布式锁

  • 分布式锁
  • 超时问题
  • 可重入性

2. 延时队列

  • 异步音讯队列?
  • 队列空了怎么办?
  • 队列提早
  • 闲暇连贯主动断开
  • 锁抵触解决
  • 延时队列的实现
  • 进一步优化

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. 事务

  • Redis 事务的根本应用
  • 原子性
  • discard(抛弃)
  • 优化
  • 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 脚本平安
  • SSL 代理

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 版的敌人,点击传送门 即可获取到了(手速快的曾经上车了)

正文完
 0