Redis讀寫分離架構搭建及原理解析

1. Redis讀寫分離原理

爲了解決單實例Redis在高併發下的性能問題,所以需要對單實例Redis進行擴展,將其擴展爲一個(master)主節點負責寫入以及多個從節點(slave)負責讀取,所以讀寫分離架構是一種主從架構。
在這裏插入圖片描述

  • 當slave節點初始化時,會ping向master,一旦ping通了,slave就會從master節點進行數據複製,這是一種基於RDB持久化機制的全量的數據複製模式,slave節點把master節點的RDB文件複製到slave節點上,然後把RDB文件加載到內存中去。
  • 後期master有寫操作的時候,master會把相應的命令傳輸到slave,slave執行同樣的命令保證數據同步。
    在這裏插入圖片描述

2. Redis讀寫分離架構搭建

首先準備三個節點,在每個節點上執行info replication,都會出現如下結果。可以看出,在單節點下,每個節點的角色都是master,待連接的從節點都是0個。
在這裏插入圖片描述

現在以Node1爲主,Node2和Node3爲從節點搭建讀寫分離結構:

  1. Node1不用配置,只需要配置Node2和Node3的從節點配置即可;
  2. 打開Node2的Redis.conf文件,將如下參數:
replicaof <masterip> <masterport> #修改爲主節點的地址和端口
masterauth <master-password> #主節點的密碼
replica-read-only yes #這是個默認配置,意思是所有的從節點是隻讀的,這樣在從節點的寫操作是寫不進去的
  1. 重啓Redis,Node3同理

在查看主節點信息如下,表明有兩個從節點連接了:
在這裏插入圖片描述

3. Redis無磁盤化主從複製原理解析

Redis無磁盤化複製是指通過socket的方式,從master的內存把數據直接複製到slave的內存中,無磁盤化複製是爲了適應磁盤讀寫效率低下的場景。
在這裏插入圖片描述
通過修改redis.conf中的如下屬性進行配置:

repl-diskless-sync yes #啓動無磁盤化複製
repl-diskless-sync-delay 5 #在進行同步之前,等待所有slave節點ping通的時間,默認是5秒
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章