引言
本文分為六個部分,包括 redis 源碼日志,服務架構,基礎資料結構,内功心法,應用,其他,從源碼層面循序漸進的了解redis。可以快速、有效地了解redis 的内部構造以及運作機制,更好、更高效地使用redis。
本文架構如下
第一部分,主要是在閱讀代碼過程中的日志和筆記;
第二部分,主要介紹了 redis 的主要架構,以及 redis 是如何提供服務的,從一個最簡單的指令開始講起;
第三部分,主要介紹 redis 底層用作存儲的資料結構,這一部分很有趣;
第四部分,主要講解了 redis 的核心功能,包括持久化,訂閱/釋出模式,主從複制,事務機制,叢集等等;
第五部分,展示了 redis 幾個簡單的應用;
第六部分,介紹了 redis 和 memcached 的差別,以及稍稍講解了 memcached。
redis服務架構
①初探 redis
redis 在緩存系統所處的位置
②redis 事件驅動詳解
事件驅動資料結構
事件循環中心
redis 事件驅動原理
事件注冊詳解
準備監聽工作
為監聽套接字注冊事件
事件循環
事件觸發
③redis 是如何提供服務的
initserverconfig()
aemain()
新連接配接的處理流程
請求的處理流程
執行指令
在哪裡回複用戶端
redis 基礎資料結構
①redis 資料結構綜述
一覽 redis 資料結構:
redis 指令和相關的資料結構
redis 資料結構 redisob
redis 資料結構 sds
redis 資料結構 dict
redis 資料結構 ziplist
redis 資料結構 skiplist
redis 資料結構 intset
redis 内功心法
①redis 資料淘汰機制
概述
lru 資料淘汰機制
ttl 資料淘汰機制
在哪裡開始淘汰資料
②rdb 持久化政策
簡介 redis 持久化 rdb、aof
資料結構 rio
rdb 持久化的運作機制
rdb 資料的組織方式
③aof 持久化政策
簡介
aof 資料組織方式
aof 持久化運作機制
細說更新緩存
aof 恢複過程
aof 的适用場景
④訂閱釋出機制
兩種訂閱
訂閱相關資料結構
訂閱過程
消息釋出
⑤主從複制
積壓空間
主從資料同步機制概述
全同步
部分同步
緩存主機
總結
⑥redis 事務機制
redis 事務簡述
redis 指令隊列
鍵值的監視
redis 事務的執行與取消
redis 事務番外篇
⑦redis 與 lua 腳本
lua 簡介
redis 為什麼添加 lua 支援
lua 環境的初始化
lua 腳本執行 redis 指令
redis lua 腳本的執行過程
髒指令
lua 腳本的傳播
⑧redis 哨兵機制
redis 哨兵的服務架構
定時程式
哨兵與 redis 伺服器的互聯
hello 指令
info 指令
心跳
線上狀态監測
故障修複
redis 螢幕
redis 資料遷移
⑨redis 叢集(上)
前奏
談一緻性雜湊演算法(consistent hashing)
怎麼實作?
twemproxy - redis 叢集管理方案
redis 官方版本支援的叢集
⑩redis 叢集(下)
資料結構
資料通路
新的節點
心跳機制
故障修複的協定
資料遷移
redis 應用
積分排行榜
分布式鎖
消息中間件
web 伺服器存儲 session
其他
①記憶體資料管理
共享對象
兩種記憶體配置設定政策
memory aware 支援
zmalloc_get_private_dirty() 函數
②redis 日志和斷言
redis 日志
redis 斷言
③redis 與 memcache
單程序單線程與單程序多線程
豐富與簡單的資料結構
性能測試
④小剖memcache
初始化過程
unix 域套接字和 udp/tcp 工作模式
工作線程管理和線程調配方式
存儲容器
連接配接管理
一個請求的工作流程
memcached 的分布式
⑤memcached slab 配置設定政策
memcached slab 概述
slab class
記憶體配置設定的過程
lru 機制
⑥源碼閱讀工具
sublime text 2/3
eclipse cdt
source insight
完結
redis基于記憶體,常用作于緩存的一種技術,并且redis存儲的方式是以key-value的形式。redis是如今網際網路技術架構中,使用最廣泛的緩存,在工作中常常會使用到。redis也是中進階後端工程師技術面試中,面試官最喜歡問的問題之一,是以作為java開發者,redis是我們必須要掌握的。
redis 是 nosql 資料庫領域的佼佼者,如果你需要了解 redis 是如何實作高并發、海量資料存儲的,那麼這份騰訊專家手敲《redis源碼日志筆記》将會是你的最佳選擇。