<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
由於前段時間公司專案比較趕,一直抽不出時間寫部落格,今天偷空寫一篇吧。前面給大家講解了單機版redis的基本操作,現在繼續給大家講解一下Redis的進階部分,主從複製和讀寫分離。
也就是我們所說的主從複製,主機資料更新後根據設定和策略,自動同步到備機的master/slaver機制,Master以寫為主,Slave以讀為主。
1、讀寫分離;
2、容災恢復。
1、配從(庫)不配主(庫);
2、從庫設定:slaveof [主庫IP] [主庫埠];
3、修改組態檔細節操作
- 拷貝多個redis.conf檔案
- 指定埠
- 開啟daemonize yes
- Pid檔案名字
- Log檔案名字
- Dump.rdb名字
4、常用3招
- 一主二僕
一個Master,兩個Slave,Slave只能讀不能寫;當Slave與Master斷開後需要重新slave of連線才可建立之前的主從關係;Master掛掉後,Master關係依然存在,Master重啟即可恢復。
- 薪火相傳
上一個Slave可以是下一個Slave的Master,Slave同樣可以接收其他slaves的連線和同步請求,那麼該slave作為了鏈條中下一個slave的Master,如此可以有效減輕Master的寫壓力。如果slave中途變更轉向,會清除之前的資料,重新建立最新的。
- 反客為主
當Master掛掉後,Slave可鍵入命令 slaveof no one使當前redis停止與其他Master redis資料同步,轉成Master redis。
1、Slave啟動成功連線到master後會傳送一個sync命令;
2、Master接到命令啟動後的存檔程序,同時收集所有接收到的用於修改資料集命令,在後臺程序執行完畢之後,master 將傳送整個資料檔案到slave,以完成一次完全同步;
3、全量複製:而slave服務在資料庫檔案資料後,將其存檔並載入到記憶體中;
4、增量複製:Master繼續將新的所有收集到的修改命令依次傳給slave,完成同步;
5、但是隻要是重新連線master,一次完全同步(全量複製)將被自動執行。
反客為主的自動版,能夠後臺監控Master庫是否故障,如果故障了根據投票數自動將slave庫轉換為主庫。一組sentinel能同時監控多個Master。
使用步驟:
1、在Master對應redis.conf同目錄下新建sentinel.conf檔案,名字絕對不能錯;
2、設定哨兵,在sentinel.conf檔案中填入內容:
3、啟動哨兵模式:
延時,由於所有的寫操作都是在Master上操作,然後同步更新到Slave上,所以從Master同步到Slave機器有一定的延遲,當系統很繁忙的時候,延遲問題會更加嚴重,Slave機器數量的增加也會使得這個問題更加嚴重。
1. 建立兩個redis.conf檔案, 一主一從
redis_6379.conf redis_6380.conf
2. master conf 主要設定
bind 127.0.0.1 port 6379 protected-mode yes daemonize yes pidfile /var/run/redis_6379.pid logfile "/Data/apps/redis-3.2.12/logs/redis_6379.log" dbfilename dump_6379.rdb dir /Data/apps/redis-3.2.12/workplace requirepass paopao
3. slave conf 主要設定
bind 127.0.0.1 port 6380 protected-mode yes daemonize yes pidfile /var/run/redis_6380.pid logfile "/Data/apps/redis-3.2.12/logs/redis_6380.log" dbfilename dump_6380.rdb dir /Data/apps/redis-3.2.12/workplace slaveof 127.0.0.1 6379 masterauth paopao
4. 啟動主從redis-server程序
redis-server /Data/apps/redis-3.2.12/conf/redis_6379.conf redis-server /Data/apps/redis-3.2.12/conf/redis_6380.conf
5.其他相關設定
# 當從庫同主機失去連線或者複製正在進行,從機庫有兩種執行方式: # 1) 如果slave-serve-stale-data設定為yes(預設設定),從庫會繼續相應使用者端的請求 # 2) 如果slave-serve-stale-data是指為no,除去INFO和SLAVOF命令之外的任何請求都會返回一個 # 錯誤"SYNC with master in progress" slave-serve-stale-data yes slave-read-only yes # 從庫會按照一個時間間隔向主庫傳送PINGs.可以通過repl-ping-slave-period設定這個時間間隔,預設是10秒 repl-ping-slave-period 10 # repl-timeout 設定主庫批次資料傳輸時間或者ping回覆時間間隔,預設值是60秒 # 一定要確保repl-timeout大於repl-ping-slave-period repl-timeout 60 # slave節點磁碟慢, 網速快時, 置為yes, master上的rdb檔案將以socket方式傳輸, 跳過磁碟儲存 repl-diskless-sync no # 傳輸前等待秒數, 為了等待更多的slave節點加入 repl-diskless-sync-delay 5 # 傳輸時,是否禁用tcp nodelay repl-disable-tcp-nodelay no # 複製緩衝區大小 repl-backlog-size 1mb # 複製緩衝區釋放週期 repl-backlog-ttl 3600 # 為了sentinal模式, 選舉master準備, 數值越小, 優先順序越高 slave-priority 100 # require at least 3 slaves with a lag <= 10 seconds use min-slaves-to-write 3 min-slaves-max-lag 10 # 可覆蓋bind, port 設定, 對外ip port slave-announce-ip 5.5.5.5 slave-announce-port 1234
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45