原创 我的 2022 觀影總結

前言 電影 《下一站,天國》 《橫道世之介》 《第十一回》 其他 電視劇 《9 號祕事》第七季 《愛,死亡和機器人》第三季 《我的事說來話長》 其他 動畫 《電鋸人》 《JOJO 的奇妙冒險 石之海》Part 2、Part

原创 JDK 19 Virtual Threads 虛擬線程

前言 Project Loom Loom 是什麼? 爲什麼要引入 Loom? Virtual threads Platform thread 是什麼? Virtual thread 是什麼? Virtual thread 的好處?

原创 思維導圖學《On Java》基礎卷 + 進階卷

說明 目錄 思維導圖 導讀 第 1 章 什麼是對象 第 3 章 一切都是對象 第 6 章 初始化和清理 第 7 章 實現隱藏 第 8 章 複用 第 9 章 多態 第 10 章 接口 第 11 章 內部類 第 13 章 函數式編程 第 1

原创 Redis 源碼簡潔剖析 16 - 客戶端

整體概述 客戶端屬性 套接字描述符 標誌 輸入緩衝區 命名及命令參數 命令的實現函數 輸出緩衝區 客戶端的創建與關閉 創建普通客戶端 關閉普通客戶端 參考鏈接 Redis 源碼簡潔剖析系列 整體概述 Redis 一個服務器可

原创 Redis 源碼簡潔剖析 14 - Redis 持久化

Redis 持久化方式 RDB 優勢 劣勢 AOF 優勢 劣勢 Redis < 7.0 參考鏈接 Redis 源碼簡潔剖析系列 Redis 持久化方式 主要參考 Redis 官方文檔:Redis Persistence

原创 Redis 源碼簡潔剖析 15 - AOF

AOF 是什麼 AOF 持久化的實現 命令追加 AOF 文件的寫入和同步 AOF 文件的載入和數據還原 AOF 重寫 爲什麼需要重寫 什麼是重寫 如何重寫 AOF 後臺重寫 爲什麼需要後臺重寫 帶來的問題 AOF 重寫緩衝區

原创 Redis 源碼簡潔剖析 13 - RDB 文件

RDB 是什麼 RDB 文件格式 Header Body DB Selector AUX Fields Key-Value Footer 編碼算法說明 Length 編碼 String 編碼 Score 編碼 Value 編

原创 Redis 源碼簡潔剖析 12 - 一條命令的處理過程

命令的處理過程 Redis server 和一個客戶端建立連接後,會在事件驅動框架中註冊可讀事件——客戶端的命令請求。命令處理對應 4 個階段: 命令讀取:對應 readQueryFromClient 函數 命令解析:對應 process

原创 Redis 源碼簡潔剖析 11 - 主 IO 線程及 Redis 6.0 多 IO 線程

Redis 到底是不是單線程的程序? 多 IO 線程的初始化 IO 線程運行函數 IOThreadMain 如何推遲客戶端「讀」操作? 如何推遲客戶端「寫」操作? 如何把待「讀」客戶端分配給 IO 線程執行? 如何把待「寫」客戶端分配給

原创 Redis 源碼簡潔剖析 10 - aeEventLoop 及事件

aeEventLoop IO 事件處理 IO 事件創建 讀事件處理 寫事件處理 時間事件處理 時間事件定義 時間事件創建 時間事件回調函數 時間事件的觸發處理 參考鏈接 Redis 源碼簡潔剖析系列 aeEventLoop

原创 Redis 源碼簡潔剖析 08 - epoll

select, poll, epoll 源碼分析 參考鏈接 Redis 源碼簡潔剖析系列 select, poll, epoll 關於 select, poll, epoll,​網絡 IO 演變發展過程和模型介紹 這篇文章講得很好,本文

原创 Redis 源碼簡潔剖析 09 - Reactor 模型

Reactor 模型 事件驅動框架 Redis 如何實現 Reactor 模型 事件的數據結構:aeFileEvent 主循環:aeMain 函數 事件捕獲與分發:aeProcessEvents 函數 事件註冊:aeCreateFile

原创 Redis 源碼簡潔剖析 07 - main 函數啓動

前言 問題 階段 1:基本初始化 階段 2:檢查哨兵模式,執行 RDB 或 AOF 檢測 階段 3:運行參數解析 階段 4:初始化 server 資源管理 初始化數據庫 創建事件驅動框架 階段 5:執行事件驅動框架 參考鏈接 Red

原创 Redis 源碼簡潔剖析 06 - quicklist 和 listpack

quicklist 爲什麼要設計 quicklist 特點 數據結構 quicklistCreate quicklistDelIndex quicklistDelEntry quicklistInsertBefore, quicklis

原创 Redis 源碼簡潔剖析 05 - ziplist 壓縮列表

ziplist 是什麼 Redis 哪些數據結構使用了 ziplist? ziplist 特點 優點 缺點 ziplist 數據結構 ziplist 節點 pre_entry_length encoding 和 length c