Redis 重點回顧

2018-08-02 14:50 更新
  • 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)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號