日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis主从、哨兵、集群概念

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis主从、哨兵、集群概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于redis主從、哨兵、集群的介紹網上很多,這里就不贅述了。

一、主從

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

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

主從數據庫的配置

master? slave
主不用配置,從redis的conf文件加入 slaveof ip port 就可以了
或者從redis啟動時? 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主、從數據庫是否正常運行,主出現故障自動將從數據庫轉換為主數據庫。

顧名思義,哨兵的作用就是監控Redis系統的運行狀況。它的功能包括以下兩個。

??? (1)監控主數據庫和從數據庫是否正常運行。
??? (2)主數據庫出現故障時自動將從數據庫轉換為主數據庫。


可以用info replication查看主從情況
例子:
1主2從? 1哨兵,可以用命令起也可以用配置文件里
可以使用雙哨兵,更安全,
redis-server --port 6379
redis-server --port 6380 --slaveof 192.168.0.167 6379
redis-server --port 6381 --slaveof 192.168.0.167 6379


redis-sentinel sentinel.conf
哨兵配置文件
??? sentinel.conf
??????? sentinel monitor mymaster 192.168.0.167 6379 1?

其中mymaster表示要監控的主數據庫的名字,可以自己定義一個。這個名字必須僅由大小寫字母、數字和“.-_”這 3 個字符組成。后兩個參數表示主數據庫的地址和端口號,這里我們要監控的是主數據庫6379。
注意:

??? 1、使用時不能用127.0.0.1,需要用真實IP,不然java程序通過哨兵會連到java程序所在的機器(127.0.0.1 )

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

?

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

主從切換過程:

(1)????? slave leader升級為master
(2)????? 其他slave修改為新master的slave
(3)????? 客戶端修改連接
(4)????? 老的master如果重啟成功,變為新master的slave


哨兵監控1主2從,停掉主,哨兵會選出1個從作為主,變成1主1從。然而當我把原來的主再起來,它不會作為從,只是個獨立的節點。

如果在新的主剛被選出來時,我把原來的主起來,它就能成為新主的從節點。
如果在新的主選出來過一會再起原來的主,就不能成為新主的從節點
或者在老的主起來后,重啟哨兵也能把它變成從,哨兵配置文件里有,哨兵會執行“+convert-to-slave”

這很奇怪,我也沒弄明白是怎么回事。


三、集群

即使使用哨兵,redis每個實例也是全量存儲,每個redis存儲的內容都是完整的數據,浪費內存且有木桶效應。為了最大化利用內存,可以采用集群,就是分布式存儲。即每臺redis存儲不同的內容,
共有16384個slot。每個redis分得一些slot,hash_slot = crc16(key) mod 16384 找到對應slot,鍵是可用鍵,如果有{}則取{}內的作為可用鍵,否則整個鍵是可用鍵
集群至少需要3主3從,且每個實例使用不同的配置文件,主從不用配置,集群會自己選。

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

??? cluster-enabled yes? --開啟集群

??? cluster-config-file nodes-6382.conf --集群配置文件名,每個實例配置的要不同,redis會根據文件名自動新建

用集群工具創建集群:

我們可以用集群工具進行集群,該工具是redis源碼包中,用ruby編寫,所以需要先安裝ruby。

1、安裝rubygems

??? yum install ruby
??? yum install rubygems?
??? gem install redis

?

2、把6個redis實例都起來,每個實例的集群都打開。

3、redis安裝目錄的src執行./redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

提示信息如下

[java] view plain copy
  • Connecting?to?node?127.0.0.1:6380:?OK???
  • Connecting?to?node?127.0.0.1:6381:?OK???
  • Connecting?to?node?127.0.0.1:6382:?OK???
  • Connecting?to?node?127.0.0.1:6383:?OK???
  • Connecting?to?node?127.0.0.1:6384:?OK???
  • Connecting?to?node?127.0.0.1:6385:?OK???
  • >>>?Performing?hash?slots?allocation?on?6?nodes...???
  • Using?3?masters:???
  • 127.0.0.1:6380???
  • 127.0.0.1:6381???
  • 127.0.0.1:6382???
  • Adding?replica?127.0.0.1:6383?to?127.0.0.1:6380???
  • Adding?replica?127.0.0.1:6384?to?127.0.0.1:6381???
  • Adding?replica?127.0.0.1:6385?to?127.0.0.1:6382???
  • M:?d4f906940d68714db787a60837f57fa496de5d12?127.0.0.1:6380?slots:0-5460?(5461?slots)?master???
  • M:?b547d05c9d0e188993befec4ae5ccb430343fb4b?127.0.0.1:6381?slots:5461-10922?(5462?slots)?master???
  • M:?887fe91bf218f203194403807e0aee941e985286?127.0.0.1:6382?slots:10923-16383?(5461?slots)?master??
  • S:?e0f6559be7a121498fae80d44bf18027619d9995?127.0.0.1:6383?replicates?d4f906940d68714db787a60837f57fa496de5d12???
  • S:?a61dbf654c9d9a4d45efd425350ebf720a6660fc?127.0.0.1:6384?replicates?b547d05c9d0e188993befec4ae5ccb430343fb4b???
  • S:?551e5094789035affc489db267c8519c3a29f35d?127.0.0.1:6385?replicates?887fe91bf218f203194403807e0aee941e985286???
  • Can?I?set?the?above?configuration??(type?'yes'?to?accept):??


  • 輸入yes,這樣集群就建立了。

    登錄任一臺redis,執行 info cluster,提示cluster_enabled:1

    集群過程:

    首先redis-trib.rb會以客戶端的形式嘗試連接所有的節點,并發送PING命令以確定節點能夠正常服務。如果有任何節點無法連接,則創建失敗。同時發送 INFO 命令獲取每個節點的運行ID以及是否開啟了集群功能(即cluster_enabled為1)。 準備就緒后集群會向每個節點發送 CLUSTER MEET命令,格式為 CLUSTER MEET ip port,這個命令用來告訴當前節點指定ip和port上在運行的節點也是集群的一部分,從而使得6個節點最終可以歸入一個集群。

    然后redis-trib.rb會分配主從數據庫節點,分配的原則是盡量保證每個主數據庫運行在不同的IP地址上,同時每個從數據庫和主數據庫均不運行在同一IP地址上,以保證系統的容災能力

    3主3從,當1個主故障,大家會給對應的從投票,把從立為主,若沒有從數據庫可以恢復則redis集群就down了。

    客戶端連接:

    使用redis-cli -c -p 任意一個端口

    總結

    以上是生活随笔為你收集整理的redis主从、哨兵、集群概念的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲精品久久久久久久蜜桃臀 | 日韩三级黄色 | www国产亚洲精品 | 中文视频一区二区 | 伊人久久久久久久久 | 亚洲 欧美 激情 小说 另类 | 国精产品一区一区三区免费视频 | 美女看片 | 国产123区 | 国产精品人人做人人爽 | 波多在线观看 | 在线一区不卡 | wwww日本60| 婷婷色在线播放 | 国产在线观看www | 久色99 | 免费一级特黄 | 日韩精品在线视频 | 逼逼爱插插网站 | av免播放器在线观看 | 交专区videossex农村 | 国产精品免费一区 | 久久中文字幕网 | 国产精品久久久久久久午夜 | 免费性视频 | 潘金莲一级淫片aaaaa武则天 | 色老妹| 天天色天 | 日韩色小说 | 久热精品在线视频 | 一区二区日韩 | 小萝莉末成年一区二区 | 国产亚洲性欧美日韩在线观看软件 | 日本亚洲色图 | 久久久精品一区二区 | 欧美三级理论片 | 国模少妇一区二区 | 金瓶风月在线 | 男人天堂久久久 | 国产免费看 | 亚洲午夜精选 | 日韩精品视频免费播放 | 99久久九九 | 亚洲国产日韩欧美 | 99热热| 久久久免费精品 | av电影在线观看网址 | 日本免费精品视频 | 亚洲av永久无码精品一百度影院 | 国内毛片毛片毛片毛片 | 大地资源在线观看免费高清版粤语 | wwwxxx国产| 久久精品资源 | 3d欧美精品动漫xxxx无尽 | wwwav视频 | 久久久久久国产精品免费播放 | 国模私拍大尺度裸体av | 久操视频免费观看 | 91在线日本| 在线观看三区 | 国产成人精品在线播放 | 强乱中文字幕 | 欧美另类专区 | 国产三级在线免费观看 | 好吊妞视频这里只有精品 | 国产精品96久久久久久 | av在线电影观看 | 五月天激情社区 | 四虎精品在线观看 | 在线看日韩| 岛国一区二区 | 精品一区二区久久久久久久网站 | 日本丰满熟妇bbxbbxhd | 涩涩视频在线观看免费 | 午夜偷拍福利视频 | 超碰人操| 亚洲综合色站 | 越南毛茸茸的少妇 | 欧美福利网 | 精品成人av | 亚洲视频一区在线播放 | 午夜色图| 无码精品黑人一区二区三区 | 337p粉嫩大胆噜噜噜亚瑟影院 | 国产一卡二卡三卡四卡 | 欧美成人福利视频 | 国产精品一二三四五 | 中文字幕 日韩 欧美 | aa成人 | 国产全肉乱妇杂乱视频 | 2019中文字幕在线免费观看 | 欧美一区视频在线 | 欧日韩精品 | 中文字字幕一区二区三区四区五区 | 综合在线观看 | 久久精品一区二区 | 国产一区二区三区四区五区美女 | 国产一区二区三区在线观看视频 | 天天色综合图片 |