Redis設計與實現知識點總結 事件

2021-10-22 18:26:47 字數 480 閱讀 8297

redis伺服器是乙個事件驅動程式,其中包含了兩種型別事件。

檔案事件,說白了就是接受客戶端發來的命令然後執行返回結果給客戶端

時間事件,定時觸發的一些事件比如定時持久化,定時刪除過期時間的鍵

檔案事件:

redis伺服器使用io多路復用的機制來接受客戶端連線。由於客戶端命令一般都是短資料,短時間連線,所以使用多路復用技術能夠將效能最大化。netty底層就是實現了多路復用的機制。而且使用多路復用技術,保持了單執行緒設計。

redis為檔案系統編寫了多個處理器,來處理不同的檔案事件。

時間事件servercron函式主要工作:

更新資料庫的各個統計資訊,比如時間,記憶體占用等

清理資料庫中的過期鍵值對

關閉和清理失效的連線

嘗試持久化操作

定期對從伺服器做同步

定期測試集群中連線

在2.6版本預設規定,每10秒執行一次。 從2.8版本開始,可以手動調整執行週期

Redis設計與實現知識點總結 過期時間

通過expire命令或者pexpire命令,客戶端可以設定乙個鍵的生存時間 ttl 過期時間是乙個unix時間戳 redisdb結構的expires字典儲存了資料庫中所有鍵的過期時間。稱這個字典為過期字典 過期字典的鍵是乙個指標,值是乙個long long 型別的整數,儲存了乙個毫秒精度的unix時...

Redis知識點總結

fifo first in first out,先進先出。判斷被儲存的時間,離目前最遠的資料優先被淘汰。lru least recently used,最近最少使用。判斷最近被使用的時間,目前最遠的資料優先被淘汰。lfu least frequently used,最不經常使用。在一段時間內,資料被...

Redis知識點總結

介紹 redis是單執行緒 底層使用多路io復用 持久化方式 如何保證快速並完整的恢復資料 redis 4.0以後可以混合持久化 以rdb的方式全量持久化記憶體資料保證資料恢復並以增量的方式持久化修改命令保證資料完整性 最終以rdb和aof共存的方式寫入檔案 redis實現分布式鎖 在redis中設...