1. 程式人生 > >linux運維工程師面試常見問題整理3--redis相關

linux運維工程師面試常見問題整理3--redis相關

1. redis 持久化是怎麼做的

1.客戶端向服務端傳送寫的操作
2.資料庫服務端接收到寫請求的資料
3.服務端呼叫weite這個系統呼叫,將資料往磁碟上寫
4.作業系統將緩衝區中的資料轉移到磁碟控制器上
5.磁碟控制器將資料寫到磁碟的物理介質中

2. redis 是用了叢集還是單點

1.併發訪問量大的時候肯定要叢集才能滿足需求,如果使用者量不大,訪問不是特頻繁,單點基本可以。
2.考慮到高可用的時候肯定是要使用叢集的,因為存在單點故障問題。
3.對資料延時要求高肯定是要使用叢集的,單點畢竟儲存和計算能力有限。
4.對資料可靠性,穩定性,以及系統整體容災,資料容錯,資料一致性等高效能要求高,叢集是肯定的。

3. redis RDB 與AOF 有什麼區別

"RDB持久化是指在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,實際操作過程是fork一個子程序,先將資料集寫入臨時檔案,寫入成功後,再替換之前的檔案,用二進位制壓縮儲存。

AOF持久化以日誌的形式記錄伺服器所處理的每一個寫、刪除操作,查詢操作不會記錄,以文字的方式記錄,可以開啟檔案看到詳細的操作記錄。

4. redis和memcache有什麼區別,分別的優缺點是啥

區別

1.redis中並不是所有的資料都一直儲存在記憶體中

2.Redis在很多方面具備資料庫的特徵,也就是說redis就是一個數據庫系統,memcache只是簡單的K/V快取

3.100k以上的資料中memcache效能要高於redis

如果說記憶體使用效率,memcached的記憶體利用率更高,而如果redis採用hash結構來做key-value儲存由於其組合式的壓縮,其記憶體利用率會高於memcache

如果對資料持久化和資料同步有所要求,那麼就選擇redis,這兩個特性memcache都不具備

Redis和memcache在寫的效能上面差別不大,讀取的效能上,尤其是批量讀取效能上面memcache更強

Memcache

memcache可以利用多核優勢,單例項吞吐量極高

只支援簡單的key-value資料結構

無法經行持久化,資料不能備份,只能用於快取使用,重啟後資料全部丟失

Redis

支援多種資料結構

單執行緒請求,所有命令序列執行,併發情況下不需要考慮資料一致性問題

支援持久化操作,可以進行aof及rdb資料持久化到磁碟,從而經行資料備份或資料恢復等操作,較好的防止資料丟失的手段

支援主從複製,通過主從機制,可以實時經行資料的同步複製,支援多級複製和增量複製

支援pub/sub訊息訂閱機制,可以用來經行訊息訂閱宇通知

支援檢點的事物需求,但業界只用場景很少,並不成熟