天天看點

純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

前言

作為這個時代碼代碼的秃頭人員,對Redis肯定是不陌生的,如果連Redis都沒用過,還真不好意思出去面試,指不定被面試官吊打多少次。

畢竟現在網際網路公司和一些創業公司都要用到Redis,像亞馬遜、谷歌、阿裡、騰訊都要使用,可見精通Redis使用真的很有必要。

是以,今天則分享出騰訊雲大神親自碼出的“redis深度筆記”,筆記内容沒有講一句廢話,全篇看下來都是精華!

需要Redis深度筆記PDF版的,見下圖添加上小助手即可免費領取。
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

PART1:Redis深度筆記開篇

1.Redis可以用來做什麼?

  • 由Redis面試想到的
  • Redis可以做什麼?
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

2.Redis基礎資料結構

  • Redis安裝
  • Redis基礎的資料結構
  • 容器型資料結構的通用規則
  • 關于Redis使用的一些思考
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

PART2:Redis的應用總結

1.分布式鎖

  • 分布式鎖
  • 逾時問題
  • 可重入性
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

2.延時隊列

  • 異步消息隊列?
  • 隊列空了怎麼辦?
  • 隊列延遲
  • 空閑連接配接自動斷開
  • 鎖沖突處理
  • 延時隊列的實作
  • 進一步優化
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

3.位圖

  • 基本使用
  • 統計和查找
  • 魔術指令 bitfield
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

4.HyperLogLog

  • 使用方法
  • pfadd這個pf是什麼意思?
  • pfmerge适合什麼場合用?
  • 注意事項
  • HyperLogLog實作原理
  • pf的記憶體占用為什麼是12k?
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

5.布隆過濾器

  • 布隆過濾器是什麼?
  • Redis中的布隆過濾器
  • 布隆過濾器的基本使用
  • 注意事項
  • 布隆過濾器的原理
  • 空間占用估計
  • 實際元素超出時,誤判率會怎樣變化?
  • 用不上Redis4.0怎麼辦?
  • 布隆過濾器的其他應用
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

6.簡單限流

  • 如何使用Redis來實作簡單限流政策?
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

7.漏鬥限流

  • Redis-Cell
  • 一些思考
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

8.GeoHash

  • 用資料庫來算附近的人
  • GeoHash算法
  • Redis的Geo指令基本使用
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

9.Scan

  • scan基礎使用
  • 字典的結構
  • scan周遊順序
  • 字典擴容
  • 對比擴容縮容前後的周遊順序
  • 漸進式rehash
  • 更多的scan指令
  • 大Key掃描
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

PART3:Redis的原理

1.線程IO模型

  • 非阻塞IO
  • 事件輪詢(多路複用)
  • 指令隊列
  • 響應隊列
  • 定時任務
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

2.通信協定

  • RESP(Redis Serialization Protocol)
  • 用戶端->服務端
  • 服務端->用戶端
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

3.持久化

  • 快照原理
  • fork(多程序)
  • AOF原理
  • AOF重寫
  • fsync
  • 運維
  • Redis4.0混合持久化
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

4.管道

  • Redis的消息互動
  • 管道壓力測試
  • 深入了解管道本質
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

5.事務

  • Redis事務的基本使用
  • 原子性
  • discard(丢棄)
  • 優化
  • Watch
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

6.PubSub

  • 消息多點傳播
  • PubSub
  • 模式訂閱
  • 消息結構
  • PubSub缺點
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

7.小對象壓縮

  • 32bit vs 64bit
  • 小對象壓縮存儲(ziplist)
  • 記憶體回收機制
  • 記憶體配置設定算法
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

8.主從同步

  • CAP原理
  • 最終一緻
  • 主從同步
  • 增量同步
  • 快照同步
  • 增加從節點
  • 無盤複制
  • Wait指令
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

PART4:Redis叢集

1.Sentinel

  • 消息丢失
  • Sentinel基本使用
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

2.Codis

  • Codis分片原理
  • 不同的Codis執行個體之間槽位關系如何同步?
  • 擴容
  • 自動均衡
  • Codis的代價
  • Codis的優點
  • MGET指令的操作過程
  • 架構變遷
  • Codis的尴尬
  • Codis的背景管理
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

3.Cluster

  • 槽位定位算法
  • 跳轉
  • 遷移
  • 容錯
  • 網絡抖動
  • 可能下線(PFAIL-Possibly Fail)與确定下線(Fail)
  • Cluster基本使用
  • 槽位遷移感覺
  • 叢集變更感覺
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

PART5:Redis拓展

1.Stream

  • 消息ID
  • 消息内容
  • 增删改查
  • 獨立消費
  • 建立消費組
  • 消費
  • Stream消息太多怎麼辦?
  • 消息如果忘記ACK會怎樣?
  • PEL如何避免消息丢失?
  • Stream的高可用
  • 分區Partition
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

2.Info指令

  • Redis每秒執行多少次指令?
  • Redis連接配接了多少用戶端?
  • Redisn記憶體占用多大?
  • 複制積壓緩存區多大?
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

3.再談分布式鎖

  • Redlock算法
  • Redlock使用場景
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

4.過期政策

  • 過期的key集合
  • 定時掃描政策
  • 從庫的過期政策
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

5.LRU

  • LRU算法
  • 近似LRU算法
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

6.懶惰删除

  • Redis為什麼要懶惰删除(lazy free)?
  • flush
  • 異步隊列
  • AOF Sync也很慢
  • 更多異步删除點
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

7.優雅地使用Jedis

  • 重試
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

8.保護Redis

  • 指令安全
  • 端口安全
  • Lua腳本安全
  • SSL代理
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

9.Redis安全通信

  • spiped原理
  • spiped使用入門
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

PART6:源碼

1.探索字元串内部結構

  • embstr vs raw
  • 擴容政策
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

2.探索字典内部

  • dict 内部結構
  • 漸進式rehash
  • 查找過程
  • hash 函數
  • hash攻擊
  • 擴容條件
  • 縮容條件
  • set的結構
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

3.探索壓縮清單内部

  • 增加元素
  • 級聯更新
  • IntSet 小整數集合
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

4.探索快速清單内部

  • 每個ziplist存多少元素?
  • 壓縮深度
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

5.探索跳躍清單内部結構

  • 基本結構
  • 查找過程
  • 随機層數
  • 插入過程
  • 删除過程
  • 更新過程
  • 如果score值都一樣呢?
  • 元素排名是怎麼算出來的?
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

6.探索緊湊清單内部

  • 級聯更新
  • 取代ziplist
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

7.探索基數樹内部

  • 應用
  • 結構
  • 增删節點
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

總結

最後,我想說的是,學習并非難事,而貴在堅持,尤其是在我們參與工作之後,要繼續堅持學習就更不容易了。但對于程式員來說,學習是立業之根本,如若放棄學習,被市場淘汰是遲早的事情。是以,學習更多新的知識對于自己來說才是一種更大的投資。

以上,到此結束。

提醒,Redis深度筆記免費分享,需要的完整pdf的朋友,見下圖添加上小助手即可免費擷取到了
純幹貨!騰訊雲大神親碼“redis深度筆記”,不講一句廢話,學完直接完善履歷前言PART1:Redis深度筆記開篇PART2:Redis的應用總結PART3:Redis的原理PART4:Redis叢集PART5:Redis拓展PART6:源碼總結

繼續閱讀