redis存opc_Redis集群的三種模式

一、主從模式

通過持久化功能,Redis保證了即使在服務器重啟的情況下也不會損失(或少量損失)數據,因為持久化會把內存中數據保存到硬盤上,重啟會從硬盤上加載數據。

但是由于數據是存儲在一臺服務器上的,如果這臺服務器出現硬盤故障等問題,也會導致數據丟失。為了避免單點故障,通常的做法是將數據庫復制多個副本以部署在不同的服務器上,這樣即使有一臺服務器出現故障,其他服務器依然可以繼續提供服務。為此, Redis 提供了復制(replication)功能,可以實現當一臺數據庫中的數據更新后,自動將更新的數據同步到其他數據庫上。

在復制的概念中,數據庫分為兩類,一類是主數據庫(master),另一類是從數據庫(slave)。主數據庫可以進行讀寫操作,當寫操作導致數據變化時會自動將數據同步給從數據庫。而從數據庫一般是只讀的,并接受主數據庫同步過來的數據。一個主數據庫可以擁有多個從數據庫,而一個從數據庫只能擁有一個主數據庫。

主從數據庫的配置

主數據庫不用配置,從redis的conf文件中可以加載從數據庫的信息,也可以在啟動時,使用 redis-server --port 6380 --slaveof 127.0.0.1 6379

從數據庫一般是只讀,可以改為可寫,但寫入的數據很容易被主同步沒,所以還是只讀就可以。

也可以在運行時使用slaveof ip port命令,停止原來的主,切換成剛剛設置的主 slaveof no one會把自己變成主

復制原理

當從數據庫啟動時,會向主數據庫發送sync命令,主數據庫接收到sync后開始在后臺保存快照rdb,在保存快照期間收到的命令緩存起來,當快照完成時,主數據庫會將快照和緩存的命令一塊發送給從**。復制初始化結束。

之后,主每收到1個命令就同步發送給從。

當出現斷開重連后,2.8之后的版本會將斷線期間的命令傳給重數據庫。增量復制

主從復制是樂觀復制,當客戶端發送寫執行給主,主執行完立即將結果返回客戶端,并異步的把命令發送給從,從而不影響性能。也可以設置至少同步給多少個從主才可寫。

無硬盤復制:如果硬盤效率低將會影響復制性能,2.8之后可以設置無硬盤復制,repl-diskless-sync yes

二、哨兵

當主數據庫遇到異常中斷服務后,開發者可以通過手動的方式選擇一個從數據庫來升格為主數據庫,以使得系統能夠繼續提供服務。然而整個過程相對麻煩且需要人工介入,難以實現自動化。 為此,Redis 2.8中提供了哨兵工具來實現自動化的系統監控和故障恢復功能。

哨兵的作用就是監控redis主、從數據庫是否正常運行,主出現故障自動將從數據庫轉換為主數據庫。

例子:

1主2從1哨兵

注:

配置哨兵監控一個系統時,只需要配置其監控主數據庫即可,哨兵會自動發現所有復制該主數據庫的從數據庫

這樣哨兵就能監控主6379和從6380、6381,一旦6379掛掉,哨兵就會在2個從中選擇一個作為主,根據優先級選,如果一樣就選個id小的,當6379再起來就作為從存在。

三、集群(cluster-enable)

使用集群,只需要將每個數據庫節點的cluster-enable配置打開即可。每個集群中至少需要三個主數據庫才能正常運行。

即使使用哨兵,redis每個實例也是全量存儲,每個redis存儲的內容都是完整的數據,浪費內存且有木桶效應。為了最大化利用內存,可以采用集群,就是分布式存儲。即每臺redis存儲不同的內容。

集群至少需要3主3從,且每個實例使用不同的配置文件,主從不用配置,集群會自己選。

修改每個實例的配置文件:

集群的運行

這里的master選舉和zookeeper的相似

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

斥資近1億港元,小米二次回購

1月21日消息,小米集團發布公告稱,公司于1月18日回購了984.96萬股B類普通股股票,占已發行股份0.041%,平均價為每股B類股10.1527港元,總計斥資近1億港元。 這也是繼1月17日首次回購后,小米集團連續兩日出手進…

MySQL日期數據類型、時間類型使用總結

轉載鏈接:http://www.jb51.net/article/23966.htm MySQL 日期類型:日期格式、所占存儲空間、日期范圍 比較。 日期類型 存儲空間 日期格式 日期范圍 ------------ --------- --------------------- -------------------------------…

ios macos_設計師可以從iOS 14和macOS Big Sur中學到什么?

ios macos重點 (Top highlight)With the introduction of iOS 14 and macOS Big Sur, we are the witness of the next big thing in UI Design. Changes are not so revolutionary like in iOS 7 years before, but they undoubtedly present the trend UI Designers will fol…

Web開發性能優化總結 轉載

1. 使用存儲過程, (如果在程序里用exec 存儲過程 參數,這樣執行似乎并沒有快多少) 在數據庫里是預編譯的,也不需要在字符串傳輸上花費大量時間。 防sql注入攻擊。 2. 盡量優化數據庫語句,使邏輯盡量…

金三銀四的騰訊、阿里、?字節等大廠前端社招面經

大家好,我是若川。最近金三銀四,今天分享一篇騰訊、阿里、字節等大廠的前端社招面試經驗的好文,相信看完會有所收獲。也歡迎點擊下方卡片關注或者星標我的公眾號若川視野作者面了將近一個月,目前還沒掛過,但由于各種因…

JS中創建函數的幾種方式

使用 "函數聲明" 創建函數 語法:* function 函數名([形參1,形參2...形參N]){* 語句...* } */function fun2(){console.log("這是我的第二個函數~~~");alert("哈哈哈哈哈");document.write("~~~~…

ssm提交post_我用spring mvc做,用post方式提交,后臺獲取不到參數值,用get方式就可以,什么問題...

展開全部因為form表單e68a843231313335323631343130323136353331333365646330的enctype編碼方式不同導致的;enctype 屬性規定在發送到服務器之前應該如何對表單數據進行編碼。默認地,表單數據會編碼為 "application/x-www-form-urlencoded"。就…

網頁設計簡約_簡約網頁設計的主要功能

網頁設計簡約重點 (Top highlight)Minimalism is synonymous with simplicity. Not quite. As the name suggests, minimalism is definitely not about opulent design. But the assumption that minimalism is design-less and plain is also wrong. Minimalism is simple ye…

MySQL_數據庫數據類型(data type)介紹

轉載鏈接:http://www.360sdn.com/mysql/2013/0511/78.html MySQL_數據庫數據類型(data type)介紹 mysql數據庫的數據類型(data type)分以下幾種:數值類型,字符串類型 一、數值類型 MySQL 的數值類型可以大致劃分為兩個類別,一個是整數,另一…

Expo 2010 Japan Pavilion

^_^轉載于:https://www.cnblogs.com/mmmhhhlll/archive/2010/04/16/1713680.html

深度對比學習Vue和React兩大框架

作為國內應用最廣的兩個框架,Vue 和 React 是前端必須掌握的內容,也是面試的重點。但大多數讀者都只擅長其中一個框架,當面試涉及到另一個框架的內容時,就答不好了。比如虛擬dom,兩個框架中都有應用,面試官…

PHP Token(令牌)設計

轉載鏈接:http://www.jb51.net/article/13756.htm PHP Token(令牌)設計 設計目標: 避免重復提交數據. 檢查來路,是否是外部提交 匹配要執行的動作(如果有多個邏輯在同一個頁面實現,比如新增,刪除,修改放到一個PHP文件里操作) 這里所說的token是在頁面顯示的時候,寫到…

java rwd_面向任務的設計-不僅限于Mobile First和RWD

java rwdWe already know that majority of solutions should start with a design for smartphones, we know that all websites should be responsive. Now, it’s time to think about holistic solutions with specific tasks adapted to all kind of devices.我們已經知道…

python中關鍵字 表示空類型_python中什么表示空類型

python中什么表示空類型?python中None表示空類型。表示該值是一個空對象,空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。可以將None賦值給任何變量,也…

HOJ 1015 Nearly prime numbers

代碼 //Nearly prime number is an integer positive number for which it is possible //to find such primes P1 and P2 that given number is equal to P1*P2.#include <stdio.h>#include <stdlib.h>#include <math.h>//decide n whither is a nearly pri…

「前端工程化」該怎么理解?

大家好&#xff0c;我是若川。今天分享一篇「前端工程化」的好文。非廣告&#xff0c;請放心閱讀。可點擊下方卡片關注我&#xff0c;或者查看系列文章。今天發文比較晚&#xff0c;以往都是定時早上7:30發文&#xff0c;也不知道是不是有點早。一.什么是前端工程&#xff1f;一…

axure文本框值相加_Axure教程:計數文本域實現

原標題&#xff1a;Axure教程&#xff1a;計數文本域實現制定UI規范時&#xff0c;遇到實現“限制字數的文本域”的交互問題&#xff0c;即當用戶輸入的字數長度超過限制要求&#xff0c;如何只保留規定長度的文本&#xff1f;效果如下&#xff1a;我們知道【Number】類型的文本…

figma下載_Figma和ProtoPie中的原型制作,比較

figma下載第1部分 (Part 1) Prototyping has never had such a high profile with a whole host of tools that now give you varying ability to realize your designs beyond their static UI and into a working usable thing. It’s fair to say that prototyping within t…

拗口翻譯

I find many times people use temporary tables because they learned in other databases that joining too many tables in a single query is a ?bad thing?. This is a practice that must be unlearned for Oracle development. Rather then trying to out‐smart the …

javascript 手機手勢動作touch觸屏原理分析

轉載鏈接&#xff1a;http://www.lvtao.net/web/220.html $(function(){document.getElementById("moveId").addEventListener(touchstart, touchStart);document.getElementById("moveId").addEventListener(touchmove, touchMove);document.getElementBy…