欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis三種高可用方式部署的實現(xiàn)

 更新時間:2021年05月11日 10:56:52   作者:鷓鴣鵠  
這篇文章主要介紹了redis三種高可用方式部署的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

一、主從復制

概念

和mysql的主從復制一樣 都是將服務器的數(shù)據(jù)復制到另一個數(shù)據(jù)庫中 發(fā)送的稱為master 接受的叫slave 數(shù)據(jù)為單向傳輸 只可以主到從
每臺Redis服務器都是主節(jié)點;且一個主節(jié)點可以有多個從節(jié)點(或沒有從節(jié)點),但一個從節(jié)點只能有一個主節(jié)點。

作用

數(shù)據(jù)冗余 實現(xiàn)了數(shù)據(jù)的熱備份,是持久化之外的一種數(shù)據(jù)冗余方式
故障切換 當主節(jié)點宕機或者出現(xiàn)錯誤時 由從服務器來提供服務 實現(xiàn)故障切換
負載均衡:在主從復制的基礎上,配合讀寫分離,可以由主節(jié)點提供寫服務,由從節(jié)點提供讀服務(即寫Redis數(shù)據(jù)時應用連接主節(jié)點,讀Redis數(shù)據(jù)時應用連接從節(jié)點),分擔服務器負載;尤其是在寫少讀多的場景下,通過多個從節(jié)點分擔讀負載,可以大大提高Redis服務器的并發(fā)量。
基礎 給集群和哨兵提供環(huán)境

主從復制過程

1 若啟動一個Slave機器進程,則它會向Master機器發(fā)送一個“sync command”命令,請求同步連接。

2 無論是第一次連接還是重新連接,Master機器都會啟動一個后臺進程,將數(shù)據(jù)快照保存到數(shù)據(jù)文件中(執(zhí)行rdb操作),同時Master還會記錄修改數(shù)據(jù)的所有命令并緩存在數(shù)據(jù)文件中。

3 后臺進程完成緩存操作之后,Maste機器就會向Slave機器發(fā)送數(shù)據(jù)文件,Slave端機器將數(shù)據(jù)文件保存到硬盤上,然后將其加載到內(nèi)存中,接著Master機器就會將修改數(shù)據(jù)的所有操作一并發(fā)送給Slave端機器。若Slave出現(xiàn)故障導致宕機,則恢復正常后會自動重新連接。

4 Master機器收到Slave端機器的連接后,將其完整的數(shù)據(jù)文件發(fā)送給Slave端機器,如果Mater同時收到多個Slave發(fā)來的同步請求,則Master會在后臺啟動一個進程以保存數(shù)據(jù)文件,然后將其發(fā)送給所有的Slave端機器,確保所有的Slave端機器都正常。

部署

三臺服務器 一主倆從

在這里插入圖片描述

先部署redis 每臺配置一致

systemctl stop firewalld
setenforce 0

yum install -y gcc gcc-c++ make

tar zxvf redis-5.0.7.tar.gz -C /opt/

cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install

cd /opt/redis-5.0.7/utils
./install_server.sh

回車四次,之后輸入可執(zhí)行文件路徑

Please select the redis executable path [] /usr/local/redis/bin/redis-server  	

ln -s /usr/local/redis/bin/* /usr/local/bin/

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

主節(jié)點配置

vim /etc/redis/6379.conf
bind 0.0.0.0						70行,修改bind 項,0.0.0.0監(jiān)聽所有網(wǎng)段
daemonize yes						137行,開啟守護進程
logfile /var/log/redis_6379.log		172行,指定日志文件目錄
dir /var/lib/redis/6379				264行,指定工作目錄
appendonly yes						700行,開啟AOF持久化功能
/etc/init.d/redis_6379 restart
netstat -natp | grep 6379   檢查端口是否開啟

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

從節(jié)點配置

 vim /etc/redis/6379.conf
bind 0.0.0.0						70行,修改bind 項,0.0.0.0監(jiān)聽所有網(wǎng)卡
daemonize yes						137行,開啟守護進程
logfile /var/log/redis_6379.log		172行,指定日志文件目錄
dir /var/lib/redis/6379				264行,指定工作目錄
replicaof 192.168.25.4 6379		288行,指定要同步的Master節(jié)點IP和端口
appendonly yes						700行,開啟AOF持久化功能

/etc/init.d/redis_6379 restart

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

查看結果

在主節(jié)點查看日志

tail -f /var/log/redis_6379.log

在這里插入圖片描述

驗證

# Replication
role:master
connected_slaves:2
slave0:ip=192.168.25.6,port=6379,state=online,offset=504,lag=1
slave1:ip=192.168.25.5,port=6379,state=online,offset=504,lag=0

在這里插入圖片描述

二、哨兵模式

 1 概念

是一個分布式系統(tǒng),用于對主從結構中的每臺服務器進行監(jiān)控,當出現(xiàn)故障時通過投票機制選擇新的 Master 并將所有 Slave 連接到新的 Master。所以整個運行哨兵的集群的數(shù)量不得少于3個節(jié)點。

2.作用

  • 監(jiān)控:哨兵會不斷地檢查主節(jié)點和從節(jié)點是否運作正常。
  • 自動故障轉移:當主節(jié)點不能正常工作時,哨兵會開始自動故障轉移操作,它會將失效主節(jié)點的其中一個從節(jié)點升級為新的主節(jié)點,并讓其他從節(jié)點改為復制新的主節(jié)點。
  • 通知(提醒):哨兵可以將故障轉移的結果發(fā)送給客戶端。

3 組成

  • 哨兵節(jié)點:哨兵系統(tǒng)由一個或多個哨兵節(jié)點組成,哨兵節(jié)點是特殊的redis節(jié)點,不存儲數(shù)據(jù)。
  • 數(shù)據(jù)節(jié)點:主節(jié)點和從節(jié)點都是數(shù)據(jù)節(jié)點。

哨兵的啟動依賴于主從模式,所以須把主從模式安裝好的情況下再去做哨兵模式,所有節(jié)點上都需要部署哨兵模式,哨兵模式會監(jiān)控所有的 Redis 工作節(jié)點是否正常,當 Master 出現(xiàn)問題的時候,因為其他節(jié)點與主節(jié)點失去聯(lián)系,因此會投票,投票過半就認為這個 Master 的確出現(xiàn)問題,然后會通知哨兵間,然后從 Slaves 中選取一個作為新的 Master。

主觀下線和客觀下線

主觀下線是指哨兵節(jié)點會每秒一次的頻率向建立了命令節(jié)點的實例發(fā)送ping命令,如果在 down-after-milliseconds 毫秒內(nèi)沒有做出有效響應包括(pong/loading/masterdown)以外的響應,哨兵就會將該實例在本結構體中的狀態(tài)標記為 sri_s_down 主觀下線

客觀下線是指當一個哨兵節(jié)點發(fā)現(xiàn)主節(jié)點處于主觀下線狀態(tài)時,就會向其他的哨兵節(jié)點發(fā)出詢問,該節(jié)點是否已經(jīng)主觀下線。如果超過配置參數(shù) quorum 個節(jié)點認為是主觀下線時,該哨兵節(jié)點就會將自己維護的結構體中該主節(jié)點標記為 sri_o_down 客觀下線

部署

所有的節(jié)點都要部署哨兵

 vim /opt/redis-5.0.7/sentinel.conf
protected-mode no								#17行,關閉保護模式
port 26379										#21行,Redis哨兵默認的監(jiān)聽端口
daemonize yes									#26行,指定sentinel為后臺啟動
logfile "/var/log/sentinel.log"					#36行,指定日志存放路徑
dir "/var/lib/redis/6379"						#65行,指定數(shù)據(jù)庫存放路徑
sentinel monitor mymaster 192.168.184.10 6379 2	#84行,修改 指定該哨兵節(jié)點監(jiān)控192.168.184.10:6379這個主節(jié)點,該主節(jié)點的名稱是mymaster,最后的2的含義與主節(jié)點的故障判定有關:至少需要2個哨兵節(jié)點同意,才能判定主節(jié)點故障并進行故障轉移
sentinel down-after-milliseconds mymaster 30000	#113行,判定服務器down掉的時間周期,默認30000毫秒(30秒)
sentinel failover-timeout mymaster 180000		#146行,故障節(jié)點的最大超時時間為180000(180秒)

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

開啟哨兵

先開master 后開slave

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

模擬故障

查詢主節(jié)點redis服務節(jié)點號

在這里插入圖片描述

殺掉主節(jié)點進程 并查看日志

kill -9 62009
tail -f /var/log/sentinel.log

在這里插入圖片描述

查看現(xiàn)在的主節(jié)點 現(xiàn)在主節(jié)點切換到slave1

在這里插入圖片描述

三 集群

1 概念

集群,即Redis Cluster,是Redis 3.0開始引入的分布式存儲方案。

集群由多個節(jié)點(Node)組成,Redis的數(shù)據(jù)分布在這些節(jié)點中。集群中的節(jié)點分為主節(jié)點和從節(jié)點:只有主節(jié)點負責讀寫請求和集群信息的維護;從節(jié)點只進行主節(jié)點數(shù)據(jù)和狀態(tài)信息的復制。

2 作用

1 數(shù)據(jù)分區(qū):數(shù)據(jù)分區(qū)(或稱數(shù)據(jù)分片)是集群最核心的功能。
集群將數(shù)據(jù)分散到多個節(jié)點,一方面突破了Redis單機內(nèi)存大小的限制,存儲容量大大增加;另一方面每個主節(jié)點都可以對外提供讀服務和寫服務,大大提高了集群的響應能力。
Redis單機內(nèi)存大小受限問題,在介紹持久化和主從復制時都有提及;例如,如果單機內(nèi)存太大,bgsave和bgrewriteaof的fork操作可能導致主進程阻塞,主從環(huán)境下主機切換時可能導致從節(jié)點長時間無法提供服務,全量復制階段主節(jié)點的復制緩沖區(qū)可能溢出。
2 高可用:集群支持主從復制和主節(jié)點的自動故障轉移(與哨兵類似);當任一節(jié)點發(fā)生故障時,集群仍然可以對外提供服務。

3、Redis集群的數(shù)據(jù)分片

Redis集群引入了哈希槽的概念
Redis集群有16384個哈希槽(編號0-16383)
集群的每個節(jié)點負責一部分哈希槽
每個Key通過CRC16校驗后對16384取余來決定放置哪個哈希槽,通過這個值,去找到對應的插槽所對應的節(jié)點,然后直接自動跳轉到這個對應的節(jié)點上進行存取操作

#以3個節(jié)點組成的集群為例:
節(jié)點A包含0到5460號哈希槽
節(jié)點B包含5461到10922號哈希槽
節(jié)點C包含10923到16383號哈希槽

Redis集群的主從復制模型
集群中具有A、B、C三個節(jié)點,如果節(jié)點B失敗了,整個集群就會因缺少5461-10922這個范圍的槽而不可以用。
為每個節(jié)點添加一個從節(jié)點A1、B1、C1整個集群便有三個Master節(jié)點和三個slave節(jié)點組成,在節(jié)點B失敗后,集群選舉B1位為的主節(jié)點繼續(xù)服務。當B和B1都失敗后,集群將不可用

部署

注意6個端口和IP都要不一樣。
vim /etc/redis/6379.conf

bind 192.168.25.4					    70行,修改bind項,監(jiān)聽自己的IP
protected-mode no						89行,修改,關閉保護模式
port 7001								93行,修改,redis監(jiān)聽端口,
daemonize yes							137行,以獨立進程啟動
cluster-enabled yes						833行,取消注釋,開啟群集功能
cluster-config-file nodes-6379.conf		841行,取消注釋,群集名稱文件設置,無需修改
cluster-node-timeout 15000				847行,取消注釋群集超時時間設置
appendonly yes							700行,修改,開啟AOF持久化

#重啟服務
/etc/init.d/redis_6379 restart

#加入集群
redis-cli --cluster create 192.168.25.4:7001 192.168.25.5:7003 192.168.25.6:7005 192.168.25.7:7006 192.168.25.8:7007 192.168.25.9:7008 --cluster-replicas 1

redis-cli -h 192.168.25.4 -p 7001 -c        #加-c參數(shù),節(jié)點之間就可以互相跳轉	
cluster slots			#查看節(jié)點的哈希槽編號范圍
set sky x1
cluster keyslot x1	#查看name鍵的槽編號

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

到此這篇關于redis三種高可用方式部署的實現(xiàn)的文章就介紹到這了,更多相關redis 高可用方式部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Redis中Redisson紅鎖(Redlock)使用原理

    Redis中Redisson紅鎖(Redlock)使用原理

    本文主要介紹了Redis中Redisson紅鎖(Redlock)使用原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Redis分布式可重入鎖實現(xiàn)方案

    Redis分布式可重入鎖實現(xiàn)方案

    在單進程環(huán)境下,要保證一個代碼塊的同步執(zhí)行,直接用synchronized 關鍵字或ReetrantLock 即可,在分布式環(huán)境下,要保證多個節(jié)點的線程對代碼塊的同步訪問,就必須要用到分布式鎖方案,本文介紹一下基于 Redis實現(xiàn)的分布式鎖方案,感興趣的朋友一起看看吧
    2024-02-02
  • 基于session?Redis實現(xiàn)登錄

    基于session?Redis實現(xiàn)登錄

    這篇文章主要介紹了基于session?Redis實現(xiàn)登錄的相關資料,需要的朋友可以參考下
    2023-10-10
  • Redis 中的布隆過濾器的實現(xiàn)

    Redis 中的布隆過濾器的實現(xiàn)

    這篇文章主要介紹了Redis 中的布隆過濾器的實現(xiàn),詳細的介紹了什么是布隆過濾器以及如何實現(xiàn),非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • Window server中安裝Redis的超詳細教程

    Window server中安裝Redis的超詳細教程

    這篇文章主要介紹了Window server中安裝Redis的教程,本文通過圖文實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • redis實現(xiàn)排行榜的簡單方法

    redis實現(xiàn)排行榜的簡單方法

    這篇文章主要給大家介紹了關于redis實現(xiàn)排行榜的簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • 詳解redis端口號

    詳解redis端口號

    在本篇內(nèi)容中我們給大家整理了關于redis端口號的相關知識點內(nèi)容,有興趣的朋友們學習下。
    2019-06-06
  • Redis底層數(shù)據(jù)結構詳解

    Redis底層數(shù)據(jù)結構詳解

    這篇文章主要介紹了Redis底層數(shù)據(jù)結構,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Redis主從配置和底層實現(xiàn)原理解析(實戰(zhàn)記錄)

    Redis主從配置和底層實現(xiàn)原理解析(實戰(zhàn)記錄)

    今天給大家分享Redis主從配置和底層實現(xiàn)原理解析,本文通過實戰(zhàn)項目給大家源碼解析,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06
  • Redis中List列表常用命令總結

    Redis中List列表常用命令總結

    Redis中的List API提供了一些操作列表的命令,這篇文章主要給大家介紹了關于Redis中List列表常用命令的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03

最新評論