redis是單線程,為什么這么快?
基于內存,絕大部分請求是純粹的內存操作,CPU不是Redis的瓶頸。
避免了不必要的CPU上下文切換和其他競爭條件,比如鎖操作等。
底層是使用多路I/O復用模型,非阻塞IO。
Redis6 后支持多線程,但是默認不開啟。
redis有哪些持久化方式,分別說下他們的區(qū)別。
支持AOF和RDB持久化。
AOF
以日志的形式記錄服務器所處理的每一個寫、刪除操作,查詢操作不會記錄,以文本的方式記錄。
支持秒級持久化、兼容性好,對于相同數(shù)量的數(shù)據(jù)集而言,AOF文件通常要大于RDB文件,所以恢復比RDB慢。
RDB
在指定的時間間隔內將內存中的數(shù)據(jù)集快照寫入磁盤,可以指定時間歸檔數(shù)據(jù),但不能做到實時持久化。
文件緊湊,體積小,對于災難恢復而言,RDB是非常不錯的選擇,相比于AOF機制,如果數(shù)據(jù)集很大,RDB 在恢復大數(shù)據(jù)集時的速度比 AOF 的恢復速度要快