成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

構建高性能數據庫緩存之redis主從復制

數據庫 Redis
主從復制,當用戶往Master端寫入數據時,通過Redis Sync機制將數據文件發送至Slave,Slave也會執行相同的操作確保數據一致;且實現Redis的主從復制非常簡單。

一、什么是redis主從復制?

主從復制,當用戶往Master端寫入數據時,通過Redis Sync機制將數據文件發送至Slave,Slave也會執行相同的操作確保數據一致;且實現Redis的主從復制非常簡單。

二、redis主從復制特點

1、同一個Master可以擁有多個Slaves。

2、Master下的Slave還可以接受同一架構中其它slave的鏈接與同步請求,實現數據的級聯復制,即Master->Slave->Slave模式;

3、Master以非阻塞的方式同步數據至slave,這將意味著Master會繼續處理一個或多個slave的讀寫請求;

4、Slave端同步數據也可以修改為非阻塞是的方式,當slave在執行新的同步時,它仍可以用舊的數據信息來提供查詢;否則,當slave與master失去聯系時,slave會返回一個錯誤給客戶端;

5、主從復制具有可擴展性,即多個slave專門提供只讀查詢與數據的冗余,Master端專門提供寫操作;

6、通過配置禁用Master數據持久化機制,將其數據持久化操作交給Slaves完成,避免在Master中要有獨立的進程來完成此操作。

三、redis主從復制原理

wKiom1Ozz5OThc6NAAGUIzDDlQs366.jpg

當啟動一個Slave進程后,它會向Master發送一個SYNC Command,請求同步連接。無論是第一次連接還是重新連接,Master都會啟動一個后臺進程,將數據快照保存到數據文件中,同時Master會記錄所有修改數據的命令并緩存在數據文件中。后臺進程完成緩存操作后,Master就發送數據文件給Slave,Slave端將數據文件保存到硬盤上,然后將其在加載到內存中,接著Master就會所有修改數據的操作,將其發送給Slave端。若Slave出現故障導致宕機,恢復正常后會自動重新連接,Master收到Slave的連接后,將其完整的數據文件發送給Slave,如果Mater同時收到多個Slave發來的同步請求,Master只會在后臺啟動一個進程保存數據文件,然后將其發送給所有的Slave,確保Slave正常。

四、服務器資源列表

wKiom1Ozz7PilaRGAAD2EbEmDy4850.jpg
 

五、配置過程

關于Redis的安裝與配置這里便不操作,想了解的朋友請閱讀:高性能數據庫緩存之redis(一)http://cfwlxf.blog.51cto.com/3966339/1423106
 

3、1 Master端操作如下:

運行redis服務

  1. [root@redis_master sh]# redis-server/etc/redis/redis.conf 

查詢redis運行日志

wKioL1Ozz6bw05VBAAJdwyDX2eg504.jpg

##通過閱讀日志文件輸出的一些信息,可以看出MasterSlave建立連接時,需要執行的會話機制:加載數據文件至硬盤,用時0.012秒,可想而知速度是多么的快,當然得依據數據的大小去評測;服務連接至6379端口,收到Slave同步連接請求,開啟“BGSAVE”同步等;
 

清除Master端數據庫中所有Key

  1. [root@redis_master sh]# redis-cli   
  2. 127.0.0.1:6379> FLUSHALL   
  3. OK   
  4. 127.0.0.1:6379> keys *   
  5. (empty list or set

3、2 Slave端操作如下:

[root@redis_slave ~]# vim/etc/redis/redis.conf

#添加Master端的IP與端口

  1. # slaveof <masterip><masterport>   
  2. slaveof 192.168.8.8 6379 

運行redis

  1. [root@redis_slave ~]# redis-server/etc/redis/redis.conf 

查詢Slave運行日志

wKioL1Ozz7vRolYwAAOCbyhb-MU029.jpg

##分析redis日志,可以看出Slave與Master建立連接,數據同步的過程;如:發送SYNC命令,與Master端192.168.8.8:6379建立連接,然后Slave sync started;隨后Master發送PING命令檢查Slave的存活狀態,復制被繼續….

查詢數據庫中的所有key

  1. [root@redis_slave ~]# redis-cli                   
  2. 127.0.0.1:6379> keys *   
  3. (empty list or set

3、3 slave2端操作如下:

[root@redis_slave2 ~]# vim/etc/redis/redis.conf

#添加Slave端的IP與端口,實現級聯復制;

  1. # slaveof <masterip><masterport>   
  2. slaveof 192.168.8.10 6379 

#運行redis服務

  1. [root@redis_slave2 ~]# redis-server/etc/redis/redis.conf 

查詢redis運行日志

wKiom1Oz0AGRPpzyAAOAB3zsl1Q226.jpg

##結果與Slave1類似,只不過Slave2與Slave1(192.168.8.10:6379)建立連接,同步數據;MySQL的級聯復制便是這樣,Master->Slave1->Slave2;

#查詢數據庫的所有key

[root@redis_slave2 ~]# redis-cli

127.0.0.1:6379> keys *

(empty list or set)

3、4 master端操作如下:

  1. [root@redis_master sh]# redis-cli   
  2. 127.0.0.1:6379> MSET ID 1005 NAMEMariaDB City BeiJing   
  3. OK   
  4. 127.0.0.1:6379> MGET ID NAME City   
  5. 1) "1005" 
  6. 2) "MariaDB" 
  7. 3) "BeiJing" 
  8. 127.0.0.1:6379> keys *   
  9. 1) "NAME" 
  10. 2) "ID" 
  11. 3) "City" 

3、5 客戶端驗證同步結果

slave1端驗證

  1. [root@redis_slave ~]# redis-cli   
  2. 127.0.0.1:6379> auth !@#aedf   
  3. 127.0.0.1:6379> keys *   
  4. 1) "City" 
  5. 2) "NAME" 
  6. 3) "ID" 
  7. 127.0.0.1:6379> MGET ID NAME City   
  8. 1) "1005" 
  9. 2) "MariaDB" 
  10. 3) "BeiJing" 

slave2端驗證

  1. [root@redis_slave2 ~]# redis-cli   
  2. 127.0.0.1:6379> keys *   
  3. 1) "ID" 
  4. 2) "NAME" 
  5. 3) "City" 
  6. 127.0.0.1:6379> MGET ID NAME City   
  7. 1) "1005" 
  8. 2) "MariaDB" 
  9. 3) "BeiJing" 

四、Master write,Slave read機制

Redis的主從復制,通過程序實現數據的讀寫分離,讓Master負責處理寫請求,Slave負責處理讀請求;通過擴展Slave處理更多的并發請求,減輕Master端的負載,如下圖:

wKioL1Ozz-3yEjbBAAEZvvETcp8136.jpg

此圖畫得比較簡易,展示了實現Redis讀寫分離的過程,通過判斷用戶讀寫請求,將write請求發送給Redis Master處理,Read請求發送給Redis Slave處理,文章中的不足之處,歡迎大家指點。

博文地址:http://cfwlxf.blog.51cto.com/3966339/1433637

責任編輯:林師授 來源: 51CTO
相關推薦

2023-09-24 14:32:15

2012-11-26 10:17:44

InnoDB

2019-05-10 15:30:18

數據庫主從復制MySQL

2011-04-06 09:59:00

MySQL數據庫主從復制

2015-03-13 19:34:41

2020-01-03 16:30:14

數據庫讀寫分離分庫

2023-03-15 08:30:37

2023-03-19 22:38:12

邏輯復制PostgreSQL

2023-03-19 11:53:27

2023-12-25 08:02:09

2021-01-12 08:03:19

Redis數據系統

2023-07-03 08:57:45

Master服務TCP

2020-09-24 06:39:58

MySQL數據庫

2017-05-03 11:43:51

Redis數據庫

2019-08-27 15:00:09

MySQL數據庫存儲

2019-02-11 09:04:24

MySQL主從復制數據庫

2015-04-22 14:41:04

云遷移Redis緩存數據模型調整

2024-03-01 18:33:59

MySQL節點數據

2021-06-08 07:48:27

MySQL主從配置

2019-07-23 11:41:45

數據庫SQLDocker
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 操人视频在线观看 | 日韩综合| 亚洲国产精品久久人人爱 | 精品免费视频 | 黄色毛片黄色毛片 | 国产精品久久久久久久久久妇女 | 91久久精品国产91久久性色tv | 欧美一级黄色片免费观看 | 人人性人人性碰国产 | 四虎成人精品永久免费av九九 | 午夜免费网站 | 性高湖久久久久久久久3小时 | 国产精品成人免费 | 日本精品视频一区二区三区四区 | 欧洲在线视频 | 欧美电影在线 | av看看| 国产剧情一区 | 伊人焦久影院 | 福利视频网站 | 久久久久国产 | 特一级毛片| 亚洲欧美日韩国产 | 在线成人 | 91免费视频观看 | 亚洲国产精品一区二区第一页 | 亚洲日韩中文字幕 | 欧美成人激情 | 日韩在线观看 | 久久久国产一区二区三区 | 成人三级网址 | 久久久久久中文字幕 | 国产一区二区 | 国内自拍偷拍 | 日韩欧美中文在线 | 久久久91 | 久草网在线视频 | 日韩一二区在线 | 日本高清不卡视频 | 日韩久久久久 | 国产国拍亚洲精品av |