亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Redis主從復制與讀寫分離的實現(xiàn)

 更新時間:2023年12月20日 09:09:35   作者:吳名氏.  
Redis在作為緩存的時候,隨著項目訪問量的增加,對Redis服務器的操作也越加頻繁,雖然Redis讀寫速度都很快,但是一定程度上也會造成一定的延時,本文主要介紹了Redis主從復制與讀寫分離的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下

1、為什么要主從復制、讀寫分離

Redis在作為緩存的時候,隨著項目訪問量的增加,對Redis服務器的操作也越加頻繁,雖然Redis讀寫速度都很快,但是一定程度上也會造成一定的延時,甚至出現(xiàn)宕機的可能性,這時候就出現(xiàn)了“單點故障”,那么為了解決訪問量大的問題,通常會采取的一種方式是主從架構Master/Slave,Master 以寫為主,Slave 以讀為主,并且會伴隨哨兵進行監(jiān)控

主從復制機制說明:

  • 主redis中的數(shù)據(jù)有兩個副本(replication)即從redis1和從redis2,即使一臺redis服務器宕機其他兩臺redis服務也可以繼續(xù)提供服務。
  • 主redis中的數(shù)據(jù)和從redis上的數(shù)據(jù)保持實時同步,當主redis寫入數(shù)據(jù)時通過主從復制機制會復制到兩個從redis服務上。
  • 只有一個主redis,可以有多個從redis。
  • 主從復制不會阻塞master,在同步數(shù)據(jù)時,master可以繼續(xù)處理client請求。

一個 Redis 可以即是主又是從,如下圖:

2、主從配置實踐,修改配置文件

[root@localhost ~]# cd /usr/local/redis/bin/
[root@localhost bin]# cp redis.conf redis6379.conf
[root@localhost bin]# cp redis.conf redis6380.conf
[root@localhost bin]# cp redis.conf redis6381.conf

然后對這3個配置文件redis6379.conf、redis6380.conf、redis6381.conf分別進行修改(每個配置文件都要修改)

①、修改配置端口,分別改成對應的端口即可

注:我用的是FinalShell工具,挺方便的,推薦。

②、修改daemonize為yes

③、配置pid文件路徑 pidfile

④、配置log 文件名字

⑤、配置rdb文件名

⑥、看情況選擇:如果redis配置了密碼(requirepass 123456),則還需在從redis服務中設置這一項,如果沒有設置密碼則忽略這一項

問題介紹:如果我們在主redis服務器上設置了密碼,即:在redis.conf配置文件中使用了requirepass 123456(你設置的密碼);那么我們在從redis服務器上的配置文件redis.conf中使用了slaveof 127.0.0.1 6379后發(fā)現(xiàn):主從復制失敗。

解決方案:在從redis服務器上的配置文件redis.conf中找到:masterauth <master-password>這一行,然后在這一行的下面寫上masterauth 123456(主redis服務器密碼)。這時候我們再分別重啟主redis服務器和從redis服務器,則發(fā)現(xiàn)主從復制成功!

當三份都配置完成后,分別啟動這三個服務:

使用ps -ef | grep redis 查看:

然后通過如下命令選擇不同的端口進入到這三個Redis客戶端:

redis-cli -p 6379

3、設置主從關系

①、設置一主二從:

通過 INFO replication 命令查看發(fā)現(xiàn),三個默認的都是Master角色,

然后我們將 6380 和 6381設置為Slave角色,可以使用如下命令:

SLAVEOF 127.0.0.1 6379
或
REPLICAOF 127.0.0.1 6379

這時 6380 和 6381成為了Slave,然后查看一下主機(Master)信息:

可以發(fā)現(xiàn)主機下面有兩個Slave節(jié)點。

注:通過這種方式來設置主從關系,一旦服務重啟,那么角色關系將不復存在。想要保存這種關系,可以通過Slave的 配置文件來進行配置。

分別編輯 redis6380.conf 和 redis6381.conf 配置文件,加入(約在286行):

replicaof 127.0.0.1 6379

4、測試數(shù)據(jù)

①、給主節(jié)點設置值:set k1 v1

從節(jié)點也可以獲取到值,說明沒問題。

在沒有設置主從關系之前,如果主節(jié)點內(nèi)有數(shù)據(jù),那么在設置主從關系后,Slave從節(jié)點也能獲取到主節(jié)點原來的數(shù)據(jù)。

如果Master主節(jié)點掛掉了,Slave從節(jié)點的角色不會發(fā)生變化,一直處于等待狀態(tài),直到Master主節(jié)點重新啟動。

如果要將Slave從節(jié)點變成Master節(jié)點,可以使用如下命令:

SLAVEOF no one

5、Redis配置文件解析

下面是redis主從復制場景的一些可調(diào)參數(shù),需要根據(jù)實際環(huán)境調(diào)整

  • slave-serve-stale-data yes : 是否可以把不新鮮的數(shù)據(jù)服務與客戶端
  • slave-read-only yes : 從節(jié)點只讀,啟用slaveof定義后才生效
  • repl-diskless-sync no :是否同時向多個從節(jié)點同時發(fā)數(shù)據(jù)
  • repl-diskless-sync-delay 5 :發(fā)送的延遲時間
  • repl-ping-slave-period 10 探測從節(jié)點狀態(tài)
  • repl-timeout 60 探測節(jié)點超時時間
  • repl-disable-tcp-nodelay no : 啟用nodelay
  • repl-backlog-size 1mb
  • slave-priority 100 : 從節(jié)點優(yōu)先級,復制集群中,主節(jié)點故障時,sentinel應用場景中的主節(jié)點選舉時使用的優(yōu)先級;數(shù)字越小優(yōu)先級越高,但0表示不參與選舉;
  • min-slaves-to-write 3:主節(jié)點僅允許其能夠通信的從節(jié)點數(shù)量大于等于此處的值時接受寫操作;
  • min-slaves-max-lag 10:從節(jié)點延遲時長超出此處指定的時長時,主節(jié)點會拒絕寫入操作;

6、主從復制的優(yōu)點(特點)與缺點

6.1、優(yōu)點(特點)

主從采用異步復制數(shù)據(jù)

主數(shù)據(jù)庫可以進行讀寫操作,當寫操作時會自動將數(shù)據(jù)同步給從數(shù)據(jù)庫

從數(shù)據(jù)庫一般只讀的,并且接收主數(shù)據(jù)庫同步過來的數(shù)據(jù)

一個master可以擁有多個slave,但是一個slave只能對應一個master

一個slave也可以連接多個slave

slave意外退出,不影響其他slave的讀和master的讀和寫,重新啟動后會將數(shù)據(jù)從master同步過來

master意外退出,不影響slave的讀,但redis不再提供寫服務,master重啟后redis將重新對外提供寫服務

master掛了以后,不會在slave節(jié)點中重新選一個master

6.2、缺點

由于所有的寫操作都是先在Master上操作,然后同步更新到Slave上,所以從Master同步到Slave機器有一定的延遲,當系統(tǒng)很繁忙的時候,延遲問題會更加嚴重,Slave機器數(shù)量的增加也會使這個問題更加嚴重。

7、Redis主從復制之原理介紹

Slave啟動成功連接到Master后會發(fā)送一個sync命令,Master接到命令啟動后臺的存盤進程,同時收集所有接收到的用于修改數(shù)據(jù)集命令,在后臺進程執(zhí)行完畢之后,Master將傳送整個數(shù)據(jù)文件到Slave,以完成一次完全同步

  • 全量同步:而Slave服務在接收到數(shù)據(jù)庫文件數(shù)據(jù)后,將其存盤并加載到內(nèi)存中。
  • 增量同步:Master繼續(xù)將新的所有收集到的修改命令依次傳給slave,完成同步。

但是只要是重新連接Master,一次完全同步(全量同步)將被自動執(zhí)行。

--詳細介紹:

①、全量同步

Redis 的全量同步過程主要分三個階段:

同步快照階段: Master 創(chuàng)建并發(fā)送快照給 Slave , Slave 載入并解析快照。 Master 同時將此階段所產(chǎn)生的 新的寫命令存儲到緩沖區(qū)。

同步寫緩沖階段: Master 向 Slave 同步存儲在緩沖區(qū)的寫操作命令。

同步增量階段: Master 向 Slave 同步寫操作命令。

②、增量同步

Redis 增量同步主要指 Slave 完成初始化后開始正常工作時, Master 發(fā)生的寫操作同步到 Slave 的過程。

通常情況下, Master 每執(zhí)行一個寫命令就會向 Slave 發(fā)送相同的寫命令,然后 Slave 接收并執(zhí)行。

到此這篇關于Redis主從復制與讀寫分離的實現(xiàn)的文章就介紹到這了,更多相關Redis主從復制與讀寫分離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Redis如何存儲對象

    Redis如何存儲對象

    這篇文章主要介紹了Redis如何存儲對象,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 利用Redis實現(xiàn)SQL伸縮的方法簡介

    利用Redis實現(xiàn)SQL伸縮的方法簡介

    這篇文章主要介紹了利用Redis實現(xiàn)SQL伸縮的方法,包括講到了鎖和時間序列等方面來提升傳統(tǒng)數(shù)據(jù)庫的性能,需要的朋友可以參考下
    2015-06-06
  • redis實現(xiàn)sentinel哨兵架構的方法

    redis實現(xiàn)sentinel哨兵架構的方法

    哨兵是一個分布式系統(tǒng),可以在一個架構中運行多個哨兵(sentinel) 進程,這些進程使用流言協(xié)議(gossip protocols)來接收關于Master主服務器是否下線的信息,這篇文章主要介紹了redis實現(xiàn)sentinel哨兵架構,需要的朋友可以參考下
    2022-11-11
  • redis持久化的介紹

    redis持久化的介紹

    今天小編就為大家分享一篇關于redis持久化的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Redis中大Key與熱Key的解決方案

    Redis中大Key與熱Key的解決方案

    在工作中Redis已經(jīng)成為必備的一款高性能的緩存數(shù)據(jù)庫,但是在實際的使用過程中,我們常常會遇到兩個常見的問題,也就是文章標題所說的大 key與熱 key,本文給大家介紹了Redis中大Key與熱Key的解決方案,需要的朋友可以參考下
    2024-06-06
  • 推薦一款神仙顏值的 Redis 客戶端工具(速收藏)

    推薦一款神仙顏值的 Redis 客戶端工具(速收藏)

    這篇文章主要給大家推薦一款神仙顏值的 Redis 客戶端工具(速收藏),非常好用的redis桌面管理工具,可以運行于Linux、Windows、Mac三大平臺,并且當加載大數(shù)量的key不會crash,感興趣的朋友跟隨小編一起看看吧
    2020-12-12
  • redis 解決庫存并發(fā)問題實現(xiàn)數(shù)量控制

    redis 解決庫存并發(fā)問題實現(xiàn)數(shù)量控制

    本文主要介紹了redis 解決庫存并發(fā)問題實現(xiàn)數(shù)量控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 詳解Redis中的List類型

    詳解Redis中的List類型

    這篇文章主要介紹了Redis中的List類型,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Redis進行相關優(yōu)化詳解

    Redis進行相關優(yōu)化詳解

    這篇文章主要介紹了Redis進行相關優(yōu)化,Redis在項目中進行廣泛使用,那么在日常的開發(fā)過程中,我們在使用Redis的過程中需要注意那些呢?本文將從三個維度來講解如何進行Redis的優(yōu)化
    2022-08-08
  • Redis整合Spring結合使用緩存實例

    Redis整合Spring結合使用緩存實例

    這篇文章主要介紹了Redis整合Spring結合使用緩存實例,介紹了如何在Spring中配置redis,并通過Spring中AOP的思想,將緩存的方法切入到有需要進入緩存的類或方法前面。需要的朋友可以參考下
    2015-12-12

最新評論