《redis設計與實現》讀書筆記(一)

2021-10-06 10:47:00 字數 747 閱讀 3389

定時刪除

惰性刪除

定期刪除

描述一過期立馬刪除

下次獲取時再刪除

每隔一段時間批量刪除

優點對記憶體友好

對cpu時間友好–缺點

對cpu時間不友好

對記憶體不友好–

aof持久化是通過儲存redis伺服器所執行的寫命令來記錄資料庫狀態。

aof持久化的實現:

命令追加:寫命令以協議的格式追加到aof_buff緩衝區的末尾。

always:寫入並同步;

everysec:每隔一秒同步一次;

aof重寫:為了解決aof檔案體積膨脹的問題。通過重新讀取當前伺服器的狀態來實現,與原檔案無關。

執行bgrewriteaof命令來重寫aof檔案:

新建子程序去完成重寫工作;

重寫期間新增的寫命令會被記錄到aof重寫緩衝區

子程序重寫完成後會給父程序傳送訊號

父程序接到訊號後,呼叫訊號處理函式,(此時父程序阻塞),將aof重寫緩衝區的命令追加到新的aof檔案中,將新的aof檔案更名,原地的替換舊檔案。

《redis設計與實現》讀書筆記

sds dynamic string 比起 c 字串,sds 具有以下優點 len屬性維護字串長度,常數複雜度即可獲取。預先檢查長度是否滿足需求,如果不滿足自動拓展,杜絕緩衝區溢位。空間預分配 惰性空間釋放會減少修改字串長度時所需的記憶體重分配次數。二進位制安全。相容部分 c 字串函式。list 鍊...

redis設計與實現 讀書筆記1

乙個業務模型引出對redis的好奇 提出問題 1.redis 的五種資料型別分別由什麼資料結構實現?2.redis 的字串型別既可以儲存字串,也可以儲存整數和浮點數,甚至是二進位制位 使用setbit redis 內部是如何實現儲存這些值?3.redis的一部分命令只能對特定的資料型別執行 而另一部...

redis設計和實現》讀書筆記

redis如何實現主從同步的高效率?主從複製的同步有乙個命令資料的同步文字,然後利用兩個不同伺服器的偏移量來進行進行同步,避免每次都是全部同步 並非會儲存所有的命令資料,而是會有乙個緩衝區 比如1m,比如2m 如果偏移量在這個緩衝區裡面則是會部分同步 redis的備份包括儲存資料的二進位制和命令的同...