亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Redis > 正文

Redis的主從同步解析

2020-10-28 21:35:09
字體:
來源:轉載
供稿:網友

一、Redis主從同步原理

1.1 Redis主從同步的過程

配置好slave服務器連接的master后,slave會建立和master的連接,然后發送sync命令。無論是第一次同步建立的連接還是連接斷開后的重新連接,master都會啟動一個后臺進程,將數據庫快照保存到文件中.同時master主進程會開始收集新的寫命令并緩存起來。當后臺進程完成寫文件后,master就將快照文件發送給slave,slave將文件保存到磁盤上,然后加載到內存將數據庫快照恢復到slave上。slave完成快照文件的恢復后,master就會把緩存的命令都轉發給slave,slave更新內存數據庫。后續master收到的寫命令都會通過開始建立的連接發送給slave。從master到slave的同步數據的命令和從 client到master發送的命令使用相同的協議格式。當master和slave的連接斷開時,slave可以自動重新建立連接。如果master同時收到多個slave發來的同步連接命令,只會使用啟動一個進程來寫數據庫鏡像,然后發送給所有slave。

1.2 Redis主從同步的特點

主從同步具有明顯的分布式緩存特點,主要包括這些方面:

1)一個master可以有多個slave,一個slave也可以有多個slave;
2)slave不僅可以連接到master,slave也可以連接其他slave形成樹狀結構;
3)主從同步不會阻塞master,但是會阻塞slave。也就是說當一個或多個slave與master進行初次同步數據時,master可以繼續處理client發來的請求。相反slave在初次同步數據時則會阻塞不能處理client的請求;
4)主從同步可以用來提高系統的可伸縮性,我們可以用多個slave專門處理client的讀請求,也可以用來做簡單的數據冗余或者只在slave上進行持久化從而提升集群的整體性能。

1.3 Redis主動同步設置方法

有兩種方式可以用來完成進行主從Redis服務器的同步設置。都需要針對slave服務器上進行,指定slave需要連接的Redis服務器(可能是master,也可能是slave)。

1.3.1 在配置文件中設置

在作為slave的Redis服務器的配置文件(redis.conf)中設置。

Conf代碼

slaveof 10.1.1.102 6379 #指定master的ip和端口

很明顯,這種設置方式非常簡單,但是需要修改配置文件,并且配置文件是在服務器啟動時加載的。所以服務器不啟動無法修改,操作不靈活。

這種配置方式適合于作為部署時的初始配置。

1.3.2 在Redis客戶端中進行設置

這里以Redis官方推薦的Jedis為例來說明,后文中的測試也基于Jedis來進行。這里jedis對象實例是屬于slave的,參數是服務器的地址和端口。

Java代碼

slaveJdedis.slaveOf("10.1.1.102", 6379); #指定master的ip和端口 slaveJdedis.slaveofNoOne(); #取消指定master,自己成為一個master了

通過客戶端指定的方式,可以方便的修改master和slave服務器的主從關系。所以這種方式非常適合于根據需要在線調整master和slave服務器。

1.3.3 當前主從同步存在的問題

由于master和slave服務器的不是Redis自動選舉產生,需要人工參與,因此主從倒換無法自動完成。這樣就存在一個問題,什么時候以及由誰來觸發倒換。我看了下客戶端是沒有這個能力的,一定要的話需要自己增加。

Jedis目前隨機選擇讀取的哪臺Redis服務器,因此實現自動分布式讀取我們需要對Jedis做二次封裝。

1)  需要開發一種機制,盡快檢測到master和slave的工作狀態;
2)  需要定義一種master和slave的自動切換策略;
3)  需要定義一種可以隨機讀取任何一臺Redis服務器的機制;

這些功能都可以在客戶端實現,不過效果不會太好。如果服務器自身能夠支持就比較完美了,不過從Redis官網的介紹情況來看,好像目前還沒有看到有人提這樣的需求,也沒有這樣的規劃。

二、Redis主流客戶端介紹

在Redis的官方網站,列出了5款Redis的java客戶端軟件。其中Jedis是Redis官方推薦的java客戶端,這款一直有維護并更新。目前服務器最新穩定版本是Redis2.4.17,最新的測試版本Redis 2.6.0 RC7。

2.1 Jedis

Jedis是Redis官方推薦的Java客戶端版本。目前最新為Jedis 2.1.0-5版本,完全兼容Redis 2.0.0版本。這個客戶端一直都有維護和更新。

2.2 JRedis

JRedis之前很長一段時間沒有更新,可以完全兼容Redis 2.0.0版本。今天5月份前做過更新后可以兼容最新的Redis2.6.0測試版本。

2.3 JDBC-Redis

JDBC-Redis是用于Redis這個NoSQL數據庫的JDBC驅動。只能下載到2009年3月發布的jdbc-redis_0.1_beta版本,目前已經無人維護了。

2.4 RJC

RJC提供Apache DBCP風格的連接池。1年前已經停止更新,可以完全兼容Redis 2.0.0版本。

2.5 redis-protocol

這個更新是最快和最頻繁的,可以兼容最新的Redis 2.6.0版本。不過它定位于完整支持Redis協議,更加高效和Redis服務器進行數據交互。所以,并沒有充分發揮redis服務器的功能。

2.6 各個Java客戶端總體評價

整體來講,各個客戶端基本都實現了Redis協議協議定義的基本功能。Redis-protocol更新最近對Redis協議的支持最完整;Jedis提供對Redis服務器的更多配置操作,使用起來是最方便的。其他客戶端都很少維護,功能也是一般。

如果要少量擴展客戶端的功能,基于Jedis來做開發是最快捷的。

如果要最大限制兼容和擴展客戶端的功能,基于Redis-protocol是最好的選擇。

三、Redis主從同步的使用建議

Redis主從同步在目前所有的Java客戶端都支持不好。主要原因應該還是Redis服務器本身的實現機制限制導致的。如果一定要做也是可能的,不過效果可能會打折扣。

3.1 通過封裝Jdedis來實現

1)新增一個管理類,負責維護Redis服務器集群的服務器拓撲關系;
2)新增一個監測類,負責監測和維護Redis服務器集群中的服務器運行狀態;
3)新增一個Master選擇策略類,負責確定master和slave的切換時機,并選擇最合適的Redis服務器充當master。
4)新增一個代理類,接管當前的Jedis客戶端對Redis服務器的讀寫操作。應用層通過代理類來使用Jedis客戶端。代理類需要保證Redis服務器集群對應用層透明。

總結

以上就是本文關于Redis的主從同步解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:Java編程redisson實現分布式鎖代碼示例、redis中事務機制及樂觀鎖的實現等,有什么問題可以隨時留言,小編一定知無不言言無不盡。感謝朋友們對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
青草青草久热精品视频在线观看| 久久久久久中文字幕| 日韩成人高清在线| 欧美激情亚洲国产| 91欧美精品成人综合在线观看| 久久这里只有精品视频首页| 伊人久久五月天| 欧美—级a级欧美特级ar全黄| 欧美专区福利在线| 91国产中文字幕| 亚洲影影院av| 国产69精品久久久久久| 国产精品国内视频| 久久久久久国产精品| 亚洲国产女人aaa毛片在线| 欧美日韩精品在线播放| 精品国产视频在线| 亚洲人精选亚洲人成在线| 日韩av日韩在线观看| 中文字幕精品视频| 亚洲午夜国产成人av电影男同| 国产97色在线| 最新69国产成人精品视频免费| 揄拍成人国产精品视频| 欧美大片网站在线观看| 亚洲男人7777| 国产精品欧美一区二区三区奶水| 欧美激情xxxx| 日韩免费精品视频| 久久视频精品在线| 欧美成人中文字幕在线| 97视频在线观看视频免费视频| 日本一欧美一欧美一亚洲视频| 亚洲一区二区三区在线免费观看| 亚洲第一网站免费视频| 日韩欧美精品免费在线| 中日韩午夜理伦电影免费| 国产精品偷伦免费视频观看的| 欧美日本国产在线| …久久精品99久久香蕉国产| 综合av色偷偷网| 欧美日韩国产精品专区| 91精品久久久久久久久久久久久| 91美女片黄在线观| 亚洲人成欧美中文字幕| 亚洲性xxxx| 91精品国产综合久久香蕉的用户体验| 欧美高清视频免费观看| 国产精品综合久久久| 久久男人资源视频| 欧美激情网站在线观看| 国产www精品| 亚洲精品色婷婷福利天堂| 欧美激情一区二区久久久| 中文字幕日韩av| 亚洲成在人线av| 久久久久久综合网天天| 亚洲第一av网站| 亚洲欧美精品中文字幕在线| 亚洲激情国产精品| 国产精品成人免费电影| 欧美激情精品在线| 精品成人在线视频| 国精产品一区一区三区有限在线| 欧美裸体男粗大视频在线观看| 亚洲精品电影在线| 欧美一区二区大胆人体摄影专业网站| 亚洲日本成人女熟在线观看| 国产精品久久久久久亚洲影视| 亚洲网站在线播放| 亚洲国产精品人久久电影| 国产午夜精品全部视频在线播放| 国产性色av一区二区| 午夜精品久久久久久久久久久久久| 亚洲国产精品视频在线观看| 国产精品亚洲аv天堂网| 亚洲热线99精品视频| 欧美风情在线观看| 中文字幕日韩高清| 欧洲美女7788成人免费视频| 色噜噜久久综合伊人一本| 日本三级久久久| 国产精品黄页免费高清在线观看| 久久久精品中文字幕| 久久久久这里只有精品| 欧美大片在线免费观看| 午夜精品福利视频| 国产亚洲精品va在线观看| 亚洲国产精品字幕| 国产经典一区二区| 亚洲视频精品在线| 久久久免费精品| 国产精品久久久久久久电影| 色妞欧美日韩在线| 色偷偷av一区二区三区| 亚洲福利在线看| 国产www精品| 久久99久久99精品免观看粉嫩| 亚洲第一区第一页| 91精品国产99久久久久久| 亚洲影视九九影院在线观看| 上原亚衣av一区二区三区| 亚洲爱爱爱爱爱| 狠狠色狠狠色综合日日小说| 色青青草原桃花久久综合| 日韩av综合中文字幕| 国产一区二区精品丝袜| 日韩一区二区在线视频| 日韩中文字幕视频在线| 国产专区欧美专区| 成人中文字幕在线观看| 国产欧美在线观看| 亚洲精品美女免费| 日韩在线免费高清视频| 韩国精品久久久999| 久久久国产视频| 97碰在线观看| 最新69国产成人精品视频免费| 欧美激情在线一区| 中文字幕在线看视频国产欧美在线看完整| 黑人与娇小精品av专区| 国产成人精品久久二区二区| 亚洲无线码在线一区观看| 久久777国产线看观看精品| 日韩av在线免费播放| 国产99久久精品一区二区 夜夜躁日日躁| 在线观看免费高清视频97| 国产精品自产拍在线观看| 日本免费久久高清视频| 亚洲成人黄色在线观看| 777777777亚洲妇女| 夜夜嗨av色一区二区不卡| 亚洲自拍偷拍视频| 国产99视频在线观看| 亚洲欧美在线看| 国产拍精品一二三| 精品国产自在精品国产浪潮| 81精品国产乱码久久久久久| 欧美肥老妇视频| 国产亚洲欧洲在线| 国内精品一区二区三区| 欧美亚洲国产日本| 久热精品视频在线| 国产精品久久久91| 亚洲国产天堂久久综合| 精品国偷自产在线视频99| 久久国产精品99国产精| 国产美女精彩久久| 久久综合伊人77777| 免费91麻豆精品国产自产在线观看| 日本精品中文字幕| 亚洲国产精品va在线| 亚洲第一页中文字幕| 国产精品扒开腿做爽爽爽男男| 亚洲精品一区二区三区婷婷月| 国产精品网红直播| 奇米影视亚洲狠狠色| 久久福利网址导航| 久久久电影免费观看完整版| 久久久久免费精品国产| 国产精品成人一区二区三区吃奶| 久久影院中文字幕| 国产精品久久久久久久天堂| 亚洲精品国产精品国产自|