亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis學習9---一主二從三哨兵環境配置

發布時間:2020-03-02 06:34:14 來源:網絡 閱讀:1217 作者:斷臂人 欄目:關系型數據庫

Sentinel(哨兵)是用于監控redis集群中Master狀態的工具,是Redis的高可用性解決方案,sentinel哨兵模式已經被集成在redis2.4之后的版本中。sentinel是redis高可用的解決方案,sentinel系統可以監視一個或者多個redis master服務,以及這些master服務的所有從服務;當某個master服務下線時,自動將該master下的某個從服務升級為master服務替代已下線的master服務繼續處理請求。


sentinel可以讓redis實現主從復制,當一個集群中的master失效之后,sentinel可以選舉出一個新的master用于自動接替master的工作,集群中的其他redis服務器自動指向新的master同步數據。一般建議sentinel采取奇數臺,防止某一臺sentinel無法連接到master導致誤切換。


Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案,當用Redis做Master-slave的高可用方案時,假如master宕機了,Redis本身(包括它的很多客戶端)都沒有實現自動進行主備切換,而Redis-sentinel本身也是一個獨立運行的進程,它能監控多個master-slave集群,發現master宕機后能進行自動切換。Sentinel由一個或多個Sentinel 實例 組成的Sentinel系統可以監視任意多個主服務器,以及這些主服務器屬下的所有從服務器,并在被監視的主服務器進入下線狀態時,自動將下線主服務器屬下的某個從服務器升級為新的主服務器。


Sentinel工作方式(每個Sentinel實例都執行的定時任務)

1)每個Sentinel以每秒鐘一次的頻率向它所知的Master,Slave以及其他 Sentinel 實例發送一個PING命令。

2)如果一個實例(instance)距離最后一次有效回復PING命令的時間超過 own-after-milliseconds 選項所指定的值,則這個實例會被Sentinel標記為主觀下線。?

3)如果一個Master被標記為主觀下線,則正在監視這個Master的所有 Sentinel 要以每秒一次的頻率確認Master的確進入了主觀下線狀態。?

4)當有足夠數量的Sentinel(大于等于配置文件指定的值)在指定的時間范圍內確認Master的確進入了主觀下線狀態,則Master會被標記為客觀下線。

5)在一般情況下,每個Sentinel 會以每10秒一次的頻率向它已知的所有Master,Slave發送 INFO 命令。

6)當Master被Sentinel標記為客觀下線時,Sentinel 向下線的 Master 的所有Slave發送 INFO命令的頻率會從10秒一次改為每秒一次。?

7)若沒有足夠數量的Sentinel同意Master已經下線,Master的客觀下線狀態就會被移除。 若 Master重新向Sentinel 的PING命令返回有效回復,Master的主觀下線狀態就會被移除。


環境:

主機IP:

192.168.121.121

192.168.121.122

192.168.121.123


系統:centos7.6


上傳源碼包到主機

redis-4.0.11.tar.gz


1、三臺主機編譯

yum install gcc gcc-c++ -y


tar -zxf redis-4.0.11.tar.gz -C /data/usr/src

cd /data/usr/src/redis-4.0.11/

make && make install PREFIX=/data/usr/redis


2、三臺主機可拷貝配置文件

mkdir /data/usr/redis/{conf,data,logs}

cp *.conf /data/usr/redis/conf


編輯配置文件

cd /data/usr/redis/conf


2.1、配置redis


主節點:

vi redis.conf?


bind 127.0.0.1 192.168.121.121

protected-mode no

daemonize yes

slave-priority 100

appendonly yes

dir /data/usr/redis/data

requirepass "Redis2019!"

masterauth "Redis2019!"

logfile "/data/usr/redis/logs/redis.log"


兩個從節點:

bind 127.0.0.1 192.168.121.122

protected-mode no

daemonize yes

slave-priority 90

appendonly yes

dir /data/usr/redis/data

slaveof 192.168.121.121 6379

requirepass "Redis2019!"

masterauth "Redis2019!"

logfile "/data/usr/redis/logs/redis.log"


bind 127.0.0.1 192.168.121.123

protected-mode no

daemonize yes

slave-priority 90

appendonly yes

dir /data/usr/redis/data

slaveof 192.168.121.121 6379

requirepass "Redis2019!"

masterauth "Redis2019!"

logfile "/data/usr/redis/logs/redis.log"


2.2、配置哨兵

vi sentinel.conf?

protected-mode no

daemonize yes

logfile "/data/usr/redis/logs/sentinel.log"

sentinel monitor mymaster 192.168.121.121 6379 2?#設置 主名稱 ip地址 端口號 參入選舉的哨兵數

sentinel auth-pass mymaster Redis2019!


最后兩條配置要按照先后順序


3、啟動


將redis服務啟動:先啟動master再啟動slave


/data/usr/redis/bin/redis-server /data/usr/redis/conf/redis.conf?


查看redis服務狀態

/data/usr/redis/bin/redis-cli -h 192.168.121.121 -p 6379 -a Redis2019! info replication?

/data/usr/redis/bin/redis-cli -h 192.168.121.122 -p 6379 -a Redis2019! info replication?

/data/usr/redis/bin/redis-cli -h 192.168.121.123 -p 6379 -a Redis2019! info replication?


啟動sentinel服務:先啟動redis服務再啟動sentinel服務,關閉則是反過來的,先關閉sentinel服務,再關閉redis服務。


/data/usr/redis/bin/redis-sentinel /data/usr/redis/conf/sentinel.conf?


查看哨兵服務狀態

/data/usr/redis/bin/redis-cli -h 192.168.121.121 -p 26379 info sentinel

/data/usr/redis/bin/redis-cli -h 192.168.121.122 -p 26379 info sentinel

/data/usr/redis/bin/redis-cli -h 192.168.121.123 -p 26379 info sentinel


4、測試

4.1、同步測試

主節點:

192.168.121.121:6379> set name kkk


從節點:

192.168.121.122:6379> keys *

1) "name"

192.168.121.122:6379> get name

"kkk"


192.168.121.123:6379> keys *

1) "name"

192.168.121.123:6379> get name

"kkk"


4.2、從庫只讀測試

192.168.121.122:6379> set bname yyy

(error) READONLY You can't write against a read only slave.


192.168.121.123:6379> set bname yyy

(error) READONLY You can't write against a read only slave.


4.3、冗余測試

測試停止主redis,發現其中一個從變為主,啟動停止的服務后發現為從服務,主服務不變。


停止一個節點sentinel服務,之后再停止主服務,發現其中一個從服務升級為主服務

停止哨兵服務命令

/data/usr/redis/bin/redis-cli -h 192.168.121.121 -p 26379 shutdown

停止redis服務命令

/data/usr/redis/bin/redis-cli -h 192.168.121.122 -p 6379 -a Redis2019 shutdown


停止第二個哨兵服務,再停止redis主服務,發現剩下的redis服務中并沒有產生主服務,說明哨兵服務最少要有兩個,最好是三個及以上。


5、問題處理

5.1、執行 make PREFIX=/data/usr/redis install 報錯


cc: error: ../deps/hiredis/libhiredis.a: No such file or directory

cc: error: ../deps/lua/src/liblua.a: No such file or directory


cd deps/

ls

hiredis? jemalloc? linenoise? lua? Makefile? README.md? update-jemalloc.sh


cd hiredis

make?


cd linenoise

make


cd lua

make?


cd lua

make

編譯報錯

Please do

? ?make PLATFORM

where PLATFORM is one of these:

? ?aix ansi bsd freebsd generic linux macosx mingw posix solaris

See INSTALL for complete instructions.

[root@slave1 lua]# make PLATFORM

make: *** No rule to make target `PLATFORM'.? Stop.


執行下面命令編譯

make generic


5.2、啟動哨兵出錯

./redis-sentinel sentinel.conf?


*** FATAL CONFIG FILE ERROR ***

Reading the configuration file, at line 92

>>> 'sentinel auth-pass mymaster Redis2019'

No such master with specified name.


出現錯誤:

sentinel monitor mymaster 192.168.121.123 6379 2

sentinel auth-pass mymaster Redis2019


上邊的配置要按照順序,錯誤是因為上邊一條的配置在下面造成的。


參考:

https://www.cnblogs.com/kevingrace/p/9004460.html

https://blog.csdn.net/qq_40476230/article/details/85845166


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

察隅县| 澜沧| 毕节市| 内江市| 雅安市| 河间市| 收藏| 雷山县| 云梦县| 阿鲁科尔沁旗| 昌江| 成安县| 江北区| 昌宁县| 容城县| 永福县| 肥乡县| 吴江市| 齐河县| 南漳县| 金堂县| 平顶山市| 太谷县| 临漳县| 浮山县| 昌吉市| 宣恩县| 平邑县| 呼和浩特市| 海安县| 广平县| 灵川县| 广灵县| 龙陵县| 清丰县| 额济纳旗| 贵州省| 汉阴县| 德安县| 塘沽区| 兴国县|