redis設計與實現 8 資料庫

2021-09-23 23:17:16 字數 685 閱讀 6597

typedef

struct redisdb

redisdb;

dict陣列儲存所有的資料庫,redis初始化的時候,缺省會建立16個資料庫

#define

redis_default_dbnum16

預設情況下,redis客戶端的目標資料庫是0 號資料庫,可以通過select命令切換。 注意,由於redis缺少獲取當前操作的資料庫命令,使用select切換需要特別注意

讀寫資料庫中的鍵值對的時候,redis除了對鍵空間執行指定操作外,還有一些額外的操作:

robj *lookupkeyreadorreply

(redisclient *c, robj *key, robj *reply)

robj *lookupkeyread

(redisdb *db, robj *key)

robj *lookupkey

(redisdb *db, robj *key)

else }

通過exprire或者pexpire命令,可以設定鍵的ttl,如果鍵的ttl為0,會被自動刪除。

expires字典儲存了資料庫中所有鍵的過期時間。

aof寫入,已過期未刪除的鍵沒有影響,被刪除後,會追加一條del命令

aof重寫,會對鍵進行檢查,過期鍵不會儲存到重寫後的aof檔案

複製:

Redis資料庫實現

redis伺服器將所有資料庫都儲存在伺服器狀態redis.h redisserver結構的db陣列中,db陣列的每一項都是乙個redisdb結構,每個redisdb代表乙個資料庫。struct redisserver 每個redis客戶端都有自己的目標資料庫,預設情況下redis客戶端的目標資料庫為...

《Redis設計與實現》學習筆記 單機資料庫

乙個redis伺服器例項在單機執行時可以新增多個資料庫來儲存鍵值對,redis在實現中通過乙個redisdb結構體來描述資料庫,該結構體中有乙個字典型別的字段來儲存資料庫中所有的鍵值對,redisserver結構體來描述伺服器例項,該結構體中有乙個dbnum欄位來儲存資料庫數量,乙個redisdb陣...

資料庫 redis與redis操作

網上搜了以下redis的入門操作,全tm的關於怎麼安裝配置和效能特點的。基本的crud create,read,update,delete 就誰也沒說,簡直氣瘋了。先記錄下自己常用的命令,後面再回頭整理乙份常用的操作文件。命令列登入客戶端 redis cli 登入 auth password 顯示全...