Redis 是一個 in-memory 的資料庫,所以資料都會被儲存在記憶體中,這樣的好處是可以提升資料的存取速度。
以往想要將資料放在記憶體來提升存取速度大多是使用 Session 來達成,但是 Session 會因為電腦或伺服器被關閉而被清除。更麻煩的問題是當一個應用要部署到多台伺服器上來分散流量的話 Session 就會不同步,這樣會導致資料和結果不正確。
所以另外一種作法就是搭配 Cookie 存放 Session Id 然後把 Session 資料存到資料庫來解決資料不同步的問題,但是這樣就要每次都去資料庫讀資料反而會增加存取的時間。
因此 Redis 提供了一些非常實用的功能來實現多機的 in-memory 資料庫,如下:
主從複製模式提供讓 Master(主伺服器) 向任意數量的 Slave(附屬伺服器) 進行資料同步,以解決單點資料庫的問題。
主從複製模式最主要的目的是要實現讀寫分離和資料備份。Redis 讀寫分離的作法是 Master 可以進行讀取和寫入,其他的 Slave 只能讀取。透過 Slave 幫忙處理讀取的工作來減輕 Master 的負擔。
Sync
命令要求進行同步。Bgsave
命令建立 rdb
快照檔案儲存到硬碟。同時,Master 會把新收到的寫入和修改資料庫的命令存到緩衝區。