RBD儲存的接收以及相關概念(讀書筆記)
RDB持久化可以手動執行,也可以根據伺服器配置選項定期執行。該功能可以將某個時間點上的資料庫狀態儲存到
一個RDB儲存到一個檔案中。
RDB持久化功能所生產的RDB檔案是一個經過壓縮的二進位制檔案,通過該檔案可以還原生成RDB檔案資料庫狀態
資料庫狀態(資料庫中的鍵值對)
RDB檔案的建立與載入
倆個redis命令生產RDB檔案 save,bgsave
save會阻塞伺服器程序,bgsave派生子程序
redis伺服器再啟動時檢測到RDB檔案存在,會自動載入
AOF檔案的更新頻率比RDB更新頻率高,如果開啟AOF,會載入AOF
伺服器載入rdb.c/rbdload函式完成
RDB載入時的伺服器狀態
會一直處於阻塞狀態,直到載入工作完成為止
自動間隔性儲存
save 900 1
伺服器再900秒內,對資料庫進行了至少一次的修改(設定儲存條件)
redisserver結構體會有一個數據記錄儲存條件
檢查儲存條件是否滿足
redis的伺服器週期操作函式serverCron預設每隔100毫秒進行一次操作
RDB檔案結構
Reis db——version database eof check+NUM 幾部分
database部分可以儲存任意多個費控資料庫
每個非空資料庫在rdb檔案都可以儲存為selectdb,db_number,key_value_pairs三個部分
分析RDB檔案
flushall
SAVE
od -c dump.rdb
這個rdb檔案組成
五個自己的redis字串
4個位元組的版本號
一個位元組的eof常量
8個位元組的校驗和