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 顯示全...