麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Redis (三 redis的事務和主從同步)

2019-11-14 10:55:36
字體:
來源:轉載
供稿:網友

multi   進入事務模式

discard   取消事務

exec   執行事務

注意:Redis只能保證事務內的命令可以按順序執行,并不能在有命令執行失敗時,可以回滾

multi命令為客戶端添加事務處理的標識,redis便將接下來的命令放到命令隊列

##持久化,

redis是內存數據庫,斷電消失,為了彌補,提供了持久化操作:內存快照和日志追加Append-only file

內存快照是把內存中的數據以快照的形式寫入二進制文件,默認文件名dump.rdb

客戶端通過save或bgsave告訴服務端保存快照

save在主線程保存快照,由于redis是單線程,所以會阻塞其它客戶端請求,所以最好不要用save

save 是每次保存完整數據,而不是增量數據

save <seconds> <changes> eg: save 900  300表示過900s或者修改300次就保存一次

aof日志追加是把增加,修改數據的命令通過write函數保存到文件尾,默認appendonly.aof

重啟時讀取文件寫入內存,日志追加方式可以有效的降低數據丟失的風險,但持久化文件大小會不斷膨脹

,例如調用100次incr nums命令,就會保存100條incr nums,其實,99條是多余的,直接set nums 100就可以了

為了壓縮日志文件,redis提供了,bgwriteaof命令,redis收到這個命令就會適應類似于內存快照的方式將內存的數據以命令的方式保存到臨時文件,最后替換原來的文件

##主從同步

master可以有多個slave

slave不會阻塞master

master上禁止使用數據持久化,只在從庫上進行

設置完主從同步,slave主動連接master,發送sync命令,master啟動一個后臺進程,將內存數據以快照形式寫入文件中,同時開始收集新的寫命令并緩存起來,master后臺完成內存快照后,發數據文件發給slave,后續master收到的寫命令都通過開始建立的連接發送給salve,master收到多個slave的連接請求時,只啟動一個進程寫數據庫鏡像,然后發送給所有的slave

即:

(1)slave主動連接master

(2)slave發送sync命令到master

(3)master備份數據到rdb文件

(4)master把rdb文件傳送到slave

(5)slave清空數據庫數據,把rdb文件數據導入

接下來master把用戶的更改或者添加操作,用命令的形式直接發送給slave

redis主從配置:slaveof  192.168.1.1 6379

### slave端的工作流程:

syncWithMaster調用anetTcpConnect連接到master服務器,發送sync命令到master服務器,發送sync命令到master服務器請求同步操作,調用aeCreateFileEvent監聽master是否可讀,如果是可讀狀態,調用readSyncBulkPayload函數從master服務器處讀取數據,最后設置slave服務器的同步狀態為REDIS_REPL_TRANSFER,表示正在從master讀取數據

readSyncBulkPayload從master服務器處讀取內存快照文件(rdb文件)數據,并保存到本地文件導入數據庫

### master端的工作流程:

注意點:如果該服務器同時是master和slave,必須等待slave端工作完畢才能進入master

sync主要是發起一個內存快照的備份,如果此時正在執行備份,就要判斷改操作是否由其它slave發起,是的話,不必發起備份,否則就要等此次備份完成后發起新的內存快照備份,如果此時沒有正在備份,則發起內存快照的備份,備份完成后,master服務器調用backgroundSaveDoneHandler函數進行后續工作,并且調用updateSlaveWaittingBgsave進行下一步同步工作,update函數會便利slave列表,為每一個slave創建一個寫事件,事件回調函數為sendBulkToSlave,如果有slave需要發起一個新的內存快照備份,把startbgsave設置為1調用rdbSaveBackGround發起新的備份工作

sendBulkToSlave負責把內存快照文件發送給slave

文件發送到slave后,第一步完成,同步流程的第二步:

master把客戶端發送過來的命令轉發給slave,實現同步


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩 综合| 日韩视频区 | 天天看天天摸天天操 | 91中文字幕在线观看 | 最近免费观看高清韩国日本大全 | 福利四区 | 国产亚洲精品久久久久婷婷瑜伽 | 黄 色 免费网 站 成 人 | 国产成年人在线观看 | 最新av在线免费观看 | 国产在线免费 | 国产日产精品久久久久快鸭 | 福利在线国产 | 羞羞视频免费网站含羞草 | 国产美女视频一区二区三区 | 日本中文字幕电影在线观看 | 国产精品视频海角社区88 | 国产精品成人一区二区三区吃奶 | 日本欧美一区二区三区在线播 | 最新在线中文字幕 | 成人三级在线播放 | 国产v综合v亚洲欧美久久 | 久久久国产精品视频 | 国产日韩线路一线路二 | 国产精品视频成人 | 中文字幕欧美一区二区三区 | 日本高清一级片 | 精品国产91久久久久久 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 国产精品一区在线看 | 激情网站视频 | av在线一区二区三区四区 | 国产精品一区二区三区在线 | 久久国产成人午夜av浪潮 | 在线播放一区二区三区 | 视频一区二区三区在线播放 | 精品国产一区二区久久 | 欧美亚洲一区二区三区四区 | av色偷偷| 黄色大片网站在线观看 | 午夜精品小视频 |