redis原始碼 單機資料庫的實現

2022-08-17 16:06:21 字數 687 閱讀 2561

redis伺服器將所有資料庫都儲存在伺服器狀態db陣列中。

dbnum由conf檔案database選項決定。

struct

redisserver ;

分析rdb檔案

od -c dump.rdb
redis事件驅動

redis伺服器是乙個事件驅動程式,伺服器需要處理以下兩類事件:

檔案事件:檔案事件就是伺服器對套接字操作的抽象。

時間事件:時間事件就是伺服器對這類定時操作的抽象。

redis基於reactor模式開發了自己的網路事件處理器。

memcached不同,redis並沒有直接使用libevent,而是自己完成了乙個非常輕量級的對select、epoll、evport、kqueue這些通用的介面的實現。在不同的系統呼叫選用適合的介面,linux下預設是epoll。因為libevent比較重更通用**量也就很龐大,擁有很多redis用不上的功能,redis為了追求「輕巧」並且去除依賴,就選擇自己去封裝了一套。

redis協議(aof檔案寫入也是這個格式)

Redis 單機資料庫的實現 資料庫原理

目錄 1.伺服器中的資料庫 2.資料庫鍵空間 2.1.讀寫空間時的維護操作 3.過期時間 4.過期刪除策略 4.1.定時刪除 4.2.惰性刪除 4.3.定期刪除 4.4.redis刪除策略 5.aof rdb和複製功能對對過期鍵的處理 5.1.rdb 5.2.aof 5.3.複製 6.資料庫通知 r...

mall原始碼簡略分析 資料庫關係模型的實現

對於資料庫關係模型的分析,我覺得需要從兩個函式說起 獲取乙個模型 function m model name,params array is new false include once model file model name ucfirst model name model if is new...

Redis設實 09 資料庫

redis設計與實現 黃建巨集 著 第9章 該書基於redis2.9,即redis3.0開發版編寫 redis伺服器資料結構 typedef structredisserverredisserver redis資料庫資料結構 typedef structredisdbredisdb 注,因資料庫鍵空...