注冊成功
X
W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
- Redis 服務器的所有數(shù)據(jù)庫都保存在
redisServer.db
數(shù)組中, 而數(shù)據(jù)庫的數(shù)量則由 redisServer.dbnum
屬性保存。
- 客戶端通過修改目標數(shù)據(jù)庫指針, 讓它指向
redisServer.db
數(shù)組中的不同元素來切換不同的數(shù)據(jù)庫。
- 數(shù)據(jù)庫主要由
dict
和 expires
兩個字典構成, 其中 dict
字典負責保存鍵值對, 而 expires
字典則負責保存鍵的過期時間。
- 因為數(shù)據(jù)庫由字典構成, 所以對數(shù)據(jù)庫的操作都是建立在字典操作之上的。
- 數(shù)據(jù)庫的鍵總是一個字符串對象, 而值則可以是任意一種 Redis 對象類型, 包括字符串對象、哈希表對象、集合對象、列表對象和有序集合對象, 分別對應字符串鍵、哈希表鍵、集合鍵、列表鍵和有序集合鍵。
expires
字典的鍵指向數(shù)據(jù)庫中的某個鍵, 而值則記錄了數(shù)據(jù)庫鍵的過期時間, 過期時間是一個以毫秒為單位的 UNIX 時間戳。
- Redis 使用惰性刪除和定期刪除兩種策略來刪除過期的鍵: 惰性刪除策略只在碰到過期鍵時才進行刪除操作, 定期刪除策略則每隔一段時間, 主動查找并刪除過期鍵。
- 執(zhí)行 SAVE 命令或者 BGSAVE 命令所產(chǎn)生的新 RDB 文件不會包含已經(jīng)過期的鍵。
- 執(zhí)行 BGREWRITEAOF 命令所產(chǎn)生的重寫 AOF 文件不會包含已經(jīng)過期的鍵。
- 當一個過期鍵被刪除之后, 服務器會追加一條 DEL 命令到現(xiàn)有 AOF 文件的末尾, 顯式地刪除過期鍵。
- 當主服務器刪除一個過期鍵之后, 它會向所有從服務器發(fā)送一條 DEL 命令, 顯式地刪除過期鍵。
- 從服務器即使發(fā)現(xiàn)過期鍵, 也不會自作主張地刪除它, 而是等待主節(jié)點發(fā)來 DEL 命令, 這種統(tǒng)一、中心化的過期鍵刪除策略可以保證主從服務器數(shù)據(jù)的一致性。
- 當 Redis 命令對數(shù)據(jù)庫進行修改之后, 服務器會根據(jù)配置, 向客戶端發(fā)送數(shù)據(jù)庫通知。
以上內(nèi)容是否對您有幫助:
更多建議: