• 中文
    • English
  • 注册
  • 查看作者
  • 腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    前言

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

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

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

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    PART1:Redis深度笔记开篇

    1.Redis可以用来做什么?

    • 由Redis面试想到的

    • Redis可以做什么?

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    2.Redis基础数据结构

    • Redis安装

    • Redis基础的数据结构

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

    • 关于Redis使用的一些思考

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    PART2:Redis的应用总结

    1.分布式锁

    • 分布式锁

    • 超时问题

    • 可重入性

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    2.延时队列

    • 异步消息队列?

    • 队列空了怎么办?

    • 队列延迟

    • 空闲连接自动断开

    • 锁冲突处理

    • 延时队列的实现

    • 进一步优化

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    3.位图

    • 基本使用

    • 统计和查找

    • 魔术指令 bitfield

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    4.HyperLogLog

    • 使用方法

    • pfadd这个pf是什么意思?

    • pfmerge适合什么场合用?

    • 注意事项

    • HyperLogLog实现原理

    • pf的内存占用为什么是12k?

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    5.布隆过滤器

    • 布隆过滤器是什么?

    • Redis中的布隆过滤器

    • 布隆过滤器的基本使用

    • 注意事项

    • 布隆过滤器的原理

    • 空间占用估计

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

    • 用不上Redis4.0怎么办?

    • 布隆过滤器的其他应用

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    6.简单限流

    • 如何使用Redis来实现简单限流策略?

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    7.漏斗限流

    • Redis-Cell

    • 一些思考

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    8.GeoHash

    • 用数据库来算附近的人

    • GeoHash算法

    • Redis的Geo指令基本使用

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    9.Scan

    • scan基础使用

    • 字典的结构

    • scan遍历顺序

    • 字典扩容

    • 对比扩容缩容前后的遍历顺序

    • 渐进式rehash

    • 更多的scan指令

    • 大Key扫描

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    PART3:Redis的原理

    1.线程IO模型

    • 非阻塞IO

    • 事件轮询(多路复用)

    • 指令队列

    • 响应队列

    • 定时任务

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    2.通信协议

    • RESP(Redis Serialization Protocol)

    • 客户端->服务端

    • 服务端->客户端

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    3.持久化

    • 快照原理

    • fork(多进程)

    • AOF原理

    • AOF重写

    • fsync

    • 运维

    • Redis4.0混合持久化

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    4.管道

    • Redis的消息交互

    • 管道压力测试

    • 深入理解管道本质

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    5.事务

    • Redis事务的基本使用

    • 原子性

    • discard(丢弃)

    • 优化

    • Watch

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    6.PubSub

    • 消息多播

    • PubSub

    • 模式订阅

    • 消息结构

    • PubSub缺点

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    7.小对象压缩

    • 32bit vs 64bit

    • 小对象压缩存储(ziplist)

    • 内存回收机制

    • 内存分配算法

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    8.主从同步

    • CAP原理

    • 最终一致

    • 主从同步

    • 增量同步

    • 快照同步

    • 增加从节点

    • 无盘复制

    • Wait指令

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    PART4:Redis集群

    1.Sentinel

    • 消息丢失

    • Sentinel基本使用

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    2.Codis

    • Codis分片原理

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

    • 扩容

    • 自动均衡

    • Codis的代价

    • Codis的优点

    • MGET指令的操作过程

    • 架构变迁

    • Codis的尴尬

    • Codis的后台管理

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    3.Cluster

    • 槽位定位算法

    • 跳转

    • 迁移

    • 容错

    • 网络抖动

    • 可能下线(PFAIL-Possibly Fail)与确定下线(Fail)

    • Cluster基本使用

    • 槽位迁移感知

    • 集群变更感知

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    PART5:Redis拓展

    1.Stream

    • 消息ID

    • 消息内容

    • 增删改查

    • 独立消费

    • 创建消费组

    • 消费

    • Stream消息太多怎么办?

    • 消息如果忘记ACK会怎样?

    • PEL如何避免消息丢失?

    • Stream的高可用

    • 分区Partition

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    指令

    • Redis每秒执行多少次指令?

    • Redis连接了多少客户端?

    • Redisn内存占用多大?

    • 复制积压缓存区多大?

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    3.再谈分布式锁

    • Redlock算法

    • Redlock使用场景

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    4.过期策略

    • 过期的key集合

    • 定时扫描策略

    • 从库的过期策略

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    5.LRU

    • LRU算法

    • 近似LRU算法

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    6.懒惰删除

    • Redis为什么要懒惰删除(lazy free)?

    • flush

    • 异步队列

    • AOF Sync也很慢

    • 更多异步删除点

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    7.优雅地使用Jedis

    • 重试

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    8.保护Redis

    • 指令安全

    • 端口安全

    • Lua脚本安全

    • SSL代理

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    9.Redis安全通信

    • spiped原理

    • spiped使用入门

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    PART6:源码

    1.探索字符串内部结构

    • embstr vs raw

    • 扩容策略

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    2.探索字典内部

    • dict 内部结构

    • 渐进式rehash

    • 查找过程

    • hash 函数

    • hash攻击

    • 扩容条件

    • 缩容条件

    • set的结构

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    3.探索压缩列表内部

    • 增加元素

    • 级联更新

    • IntSet 小整数集合

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    4.探索快速列表内部

    • 每个ziplist存多少元素?

    • 压缩深度

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    5.探索跳跃列表内部结构

    • 基本结构

    • 查找过程

    • 随机层数

    • 插入过程

    • 删除过程

    • 更新过程

    • 如果score值都一样呢?

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

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    6.探索紧凑列表内部

    • 级联更新

    • 取代ziplist

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    7.探索基数树内部

    • 应用

    • 结构

    • 增删节点

    腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

    总结

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

    以上,到此结束。

    资料已整理成文档,需要获取的小伙伴可以+ VX: mxk6072

  • 0
  • 0
  • 0
  • 27
  • 请登录之后再进行评论

    登录
  • 任务
  • 实时动态
  • 发布
  • 单栏布局 侧栏位置: