Redis讀寫分離搭建的完整步驟

2022-09-21 01:21:10 字數 1897 閱讀 1387

目錄

隨著企業業務的不斷擴大,請求的併發量不斷增長,redis可能終會出現無法負載的情況,此時我們就需要想辦法去提公升redis的負載能力。

讀寫分離(主從複製)是乙個比較簡單的擴充套件方案,使用多台機器同時執行redis服務,一台負責寫服務,多台負責讀服務,通過多台伺服器對請求進行負載,大大提高了redis服務的負載壓力。

最常見的讀寫分離是一主二從的模式,一台主伺服器負責redis寫入服務,兩台從伺服器負責redis的讀取服務,從伺服器定時從主伺服器複製redis資料。

今天我們就來聊聊redis的讀寫分離如何搭建的。

主伺服器ip:192.168.1.144

從伺服器a ip:192.168.1.22

從伺服器b ip:192.168.1.8

這三颱伺服器上都已經安裝好了redis環境,安裝方法參見我的另一篇文章《redis的安裝、基本使用以及與springboot的整合》。

replicaof   設定redis主服務的ip和埠

masterauth  設定redis主服務的程式設計客棧密碼

# cd/usr/local/redis/db

#rm -rf *.rdb *.aof

#cd /etc/init.d/

#./redis_init_script stop

# ./redis_init_script start

# redis-cli

> auth zhuifengren

>info replication

主伺服器狀態:

從伺服器a狀態:

從伺服器b狀態:

此時,在主伺服器,寫入redis值,在從伺服器就可以讀取。

讀寫分離和普通集群規格一樣,都使用了redi程式設計客棧s-proxy做請求**,多分片令使用存在一定的限制,但從主從公升級單分片讀寫分離,或者從集群公升級到多分片的讀寫分離集群可以做到完全相容。

使用者和redis-proxy建立連線,redis-proxy會識別出客戶端連線傳送過來的請求是讀還是寫,然後按照權重作負載均衡,將請求**到後端不同的db節點中,寫請求**給master,讀操作**給read-only replica(master預設也提供讀,可以通過權重控制)。

使用者只需要購買讀寫分離規格的例項,直接使用任何客戶端即可直接使用,業務不用做任何修改就可以開始享受讀寫分離服務帶來的巨大效能提公升,接入成本幾乎為0。

高可用模組(ha)監控所有db節點的健康狀態,為整個例項的可用性保駕護航。master宕機時自動切換到新主。如果某個read-only replica宕機,ha也能及時感知,然後重搭乙個新的read-only replica,下線宕機節點。

除ha之外,r也能實時感知每個read-only replica的狀態。在某個read-only replica異常期間,redis-proxy會自動降低這個節點的權重,如果發現某個read-only replica連續失敗超過一定次數以後,會暫時遮蔽異常節點,直到異常消失以後才會恢復其正常權重。

redis-proxy和ha一起做到儘量減少業務對後端異常的感知,提高服務可用性。

對於讀多寫少的業務場景,直接使用集群版本往往不是最合適的方案,現在讀寫分離提供了更多的選擇,業務可以根據場景選擇最適合的規格,充分利用每乙個read-only replica的資源。

目前hqstqspe單shard對外售賣1 master + 1/3/5 read-only replica多種規格(如果有更大的需求可以提工單hqstqspe反饋),提供60萬qps和192 mb/s的服務能力,在完全相容所有命令的情況下突破單機的資源限制。後續將去掉規格限制,讓使用者根據業務流量隨時自由的增加或減少read-only replica數量。

今天介紹了redis讀寫分離的搭建,相對來說是比較容易的,但讀寫分離有個缺點,當主服務宕機後,從服務是不能公升級成主服務的。

為了解決這個單點問題,後面我們會介紹redis的哨兵模式和集群模式。

mysql proxy主從搭建讀寫分離全過程

廢話不說!mysql proxy是什麼,大家都知道,不知道的就別往下看了.首先搭建 mysql 主從資料庫,參考 最新版,本文撰寫時最新版本為 mysql proxy 0.8.1 alpha 安裝mysql proxy 步驟如下 解壓mysql proxy 0.8.1 linux glibc2.3 ...

MYSQL讀寫分離集群搭建(六)

安裝編譯依賴包,不安裝依賴包編譯不成功 yum y install curl gcc openssl devel libnl3 devel net snmp devel libnfnetlink devel 編譯安裝成功後,就會自動生成啟停服務 mv keepalived 2.2.1 opt cd ...

mysql集群搭建之讀寫分離

準備一台機器作為mysql proxy 上一節,我們在192.168.68.3作為主伺服器,在192.168.68.5作為從伺服器,搭了乙個主從複製的集群 而這一節,以之前轉殖過來的機器192.168.68.4作為mysql proxy機器 我是上傳到了 software資料夾下,準備解壓到 usr...