數據過期策略
惰性刪除
當用到那個key的時候再檢查是否過期,過期則刪除,有效則返回key
優點是可以節省檢查過期的時間 缺點是會浪費內存
定期刪除
每隔一段時間對一些key進行檢查并且刪除里面的過期key
有兩種模式
slow模式是定時任務,頻率是10HZ,執行時間不超過25ms,可以通過配置文件調整頻率
fast模式執行頻率不固定,每次間隔不低于2ms,執行時間不超過1ms
Redis是惰性刪除加定期刪除都使用
8種內存淘汰策略
集群模式:
主從復制
哨兵模式
分片集群
主從復制中數據同步的流程
全量同步:主節點通過replicationid判斷是不是第一次同步,如果是第一次同步需要進行一次bgsave生成rdb文件進行同步,然后把生成的rdb文件傳輸給從節點,rdb期間執行的命令會記錄在日志文件中。
增量同步(slave重啟或者后期數據變化):如果不是第一次同步就讀從庫傳給主庫的offset后的命令。
redis是單線程的為什么還那么快
redis是純內存操作,執行速度非常快
采用單線程避免不必要的上下文切換,多線程還要考慮線程安全問題
采用I/O多路復用模型,非阻塞IO
解釋一下I/O多路復用模型
redis是純內存操作性能瓶頸是網絡延遲而不是執行速度,I/O多路復用模型就實現了高效的網絡請求
redis作為緩存數據的持久化是怎么做的呢