Redis*3 redis的集群&redis的哨兵模式

*疑問:Redis的key是無限大嗎?最大是多少?

答:Redis創建key的原則,不宜過大,見面知意即可。如:red_paper_queue(紅包隊列)。

<code> 
 
/<code>

3.1 Redis 的主從複製(讀寫分離)

意義:

1、讀寫分離,分攤讀寫壓力。

2、提高了服務器處理的性能。


<code>

#3

.1

.1

Redis

master

負責寫入數據,並將數據同步給

slave

(

slave

可以多個)。

#3

.1

.2

slave

負責讀取功能,以緩解單機

Redis

的讀取壓力。/<code>

讀寫解析圖:


Redis*3 redis的集群&redis的哨兵模式

redis 主從同步


配置搭建步驟:

1、查看常用命令

<code>

redis-server --

help

-- 萬能命令

redi-cli --

help

--萬能命令

keys * --萬能命令

1、開啟redis.conf 添加制定的主服務節點ip port

slave of 127.0.0.1 6379

2、啟動redis

service redisd start 或者 redis-server /etc/redis/redis.conf -- 制定配置文件啟動(生產環境使用配置文件模式)

3、啟動狀態下設置主從模式

redis-server --port 6380 -slave of 127.0.0.1 6379 -- 6380為從服務器端口 -- 6379 為主服務器端口

4、退出主從模式

slave of no one -- 退出主從模式 從服務器改為主服務器。(從節點不可以寫操作)

5、進入主從模式

slave of 127.0.0.1 6278

/<code>

以上兩種啟動方式均可。


Redis*3 redis的集群&redis的哨兵模式

redis 啟動log

Redis 主從節點注意:

1、正常生產使用一主多從(一個主節點,多個從節點)。

2、主節點宕機,從節點仍可以進行讀取,但是寫操作失敗。

3、從節點宕機,可以調用其他正常從節點(少了一個從節點,處理讀取的能力變弱)。

<code> 
 
 
 
/<code>

由於生產環境 主服務器宕機時手動切換不現實,所以 哨兵模式就非常適合處理這種場景。

3.2 Redis的哨兵模式。(sentinel)

意義:

1、高可用(故障遷移)。

Sentinel 會在master失聯後進行再次確認,多次確定失聯後(多半數/超過權重配置數)。自動執行failover操作,升級從節點為master節點。移除失聯節點。

<code>

#ss

-tanl

--

linux

命令 查看服務佔用的端口號

#scp

redis

.conf

host2

:password

--

同步配置文件到

host2

scp

複製文件或目錄。/<code>

Redis發佈了一個管理多個redis服務實例的方案,redis-sentinel。

redis-sentinel 會時時檢查master和slave的狀態是否正常。

每個redis sentinel 可以監控多個master和slave。

配置文件

<code>

#1

sentinel

默認端口號 26379

#2

、進入

sentinel

配置文件添加參數

#port

26379

#sentinel

monitor

master_1

127

.0

.0

.1

6379 3

--

哨兵監視的主服務器 3為投票權重 # 如:5個哨兵 當3個哨兵 請求不通

master_1

時 ,主服務器

ip

就可以進行移除。

#3

sentinel

會根據

master

的配置發現對應下的

slave

。 # 4、按照步驟2設置配置

sentinel1

.conf

文件

#5

、啟動

#redis-sentinel

sentinel

.conf

/<code>

啟動哨兵模式

<code>

1、在redis安裝文件目錄中找到redis-sentinel

2、將redis-sentinel文件從/home/redis/src/複製到

$REDIS_HOME

/bin 路徑下

3、啟動哨兵模式

redis-sentinel 或者redis-server /path/redis/sentinel.conf --sentinel (建議使用後者)

redis-sentinel sentinel.conf (配置文件啟動 同上)

/<code>


Redis*3 redis的集群&redis的哨兵模式

redis sentinel

哨兵模式下主節點宕機,哨兵確認失聯後重新選取主節點。


Redis*3 redis的集群&redis的哨兵模式

redis sentinel 監控

上圖 各個sentinel之間也有通訊。

高可用處理過程

<code> 
 
 
 
/<code>


Redis*3 redis的集群&redis的哨兵模式


redis集群搭建常用命令:

<code>

#service

redisd

start

--

啟動

Redis

server

#service

redisd

stop

--

關閉

Redis

server

#

redis

cli

-host

-ip

--

redis

客戶端連接指定

redis

server

-u

root

-p

password

#redis

cli

-h

127

.0

.0

.1

-p

26379

info

sentinel

--

查看對應節點的哨兵信息。(見下圖)/<code>


Redis*3 redis的集群&redis的哨兵模式

結論:

1、主從模式分擔了讀寫的壓力。

2、哨兵模式解決了master的故障移除,實現高可用。

3、哨兵模式是基於主從模式+sentinel 來實現的。

4、兩種模式都是寫服務單一。只有一個master服務器。


分享到:


相關文章: