Redis 集羣之主從模式及測試實例

在一個系統裏,我們常常使用 Redis 作爲我們的緩存系統,以提高接口訪問的效率。
然而,當流量大到一定程度,讀讀寫寫,Redis 也頂不住了,怎麼辦?
一般來說,有如下幾種方法可供解決:主從模式,Sentinel(哨兵)模式,Cluster模式。

這一節,介紹一下主從模式的實現。

1、概念

什麼是主從模式?
主從模式也可以理解爲讀寫分離,就是把原始的 Redis 庫複製一份到另一個服務器的 Redis ,原始的 Redis 只提供寫入功能,稱爲主(master),複製出來的 Redis 只提供讀功能,成爲(slave)。

可以是一主一從,也可以是一主多從。
通過這種讀寫分離的方式來實現降低 Redis 的訪問壓力,這就是主從模式的一個大致概念。
(以上是通過我個人理解自己撰寫的概念,可能有誤差,但應該差不多,標準釋義還請自行查閱,(狗頭)

2、環境搭建

既然是主從,那麼有主有從,至少得有兩個 Redis。
可以是在一臺服務器上開啓兩個 Redis 實例,也可以是在兩個服務器上來實現。
我這裏使用的是兩臺服務器,192.168.31.219 作爲 master,192.168.31.207 作爲 slave。
Redis 的下載就不多說了,直接可 apt-get 就可以 install。

3、redis.conf 設置

前面我們是通過 apt-get 來安裝的,所以 redis 的 conf 文件在 /etc/redis/redis.conf。
master設置
master 不需要進行額外設置,直接運行 redis 即可。

slave設置
slave 的設置也不難,在 /etc/redis/redis.conf 文件的末尾添加一行 所屬的 master 即可。
語法如下:

slaveof 192.168.31.219 6379  #爲master 的redis 的ip 和端口

其中,219 就是我們的 master 所在的服務器 IP,6379 就是 服務器上 redis 的端口。
運行:

sudo service redis restart

重啓 Redis 服務,如果沒意外的話,我們的主從集羣就搭建好了。

4、查看主從信息

在 219 上,也就是我們的 master 上,鍵入 redis-cli 進入 redis 的交互界面,鍵入 info replication,可以看到類似下圖,
在這裏插入圖片描述
就表示這個 role 是 master。

在 slave 服務器上同樣輸入 info replication ,可以看到類似如下:
在這裏插入圖片描述
這上面的 role 是 slave,有 master 的 ip 以及相應的端口。
master_link_status 的狀態是 up,表示的是主從之間的狀態時 連接的。

5、測試

在我們的 master 上,鍵入 redis-cli,進入 redis 的交互界面,輸入:

set test 123

然後,在 slave 機器上,輸入:

get test

就可以看到從 master 上同步過來的數據。

而當我們嘗試在 slave 上嘗試 del 操作,比如:
在這裏插入圖片描述
因爲 slave 默認是 只可讀的,不允許進行 更改或者刪除操作,

以上大概就是 Redis 主從模式的一個搭建過程。
下一篇,會介紹一下,哨兵模式的搭建流程,以及在本人機器上跑通的一個實例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章