Redis 學習之主從複製

来源:http://www.cnblogs.com/jalja/archive/2017/02/19/6416334.html
-Advertisement-
Play Games

Redis的複製功能是支持多個資料庫之間的數據同步。一類是主資料庫(master)一類是從資料庫(slave),主資料庫可以進行讀寫操作,當發生寫操作的時候自動將數據同步到從資料庫,而從資料庫一般是只讀的,並接收主資料庫同步過來的數據,一個主資料庫可以有多個從資料庫,而一個從資料庫只能有一個主資料庫... ...


該文使用centos6.5 64位    redis3.2.8   

                                 主從複製

  Redis的複製功能是支持多個資料庫之間的數據同步。一類是主資料庫(master)一類是從資料庫(slave),主資料庫可以進行讀寫操作,當發生寫操作的時候自動將數據同步到從資料庫,而從資料庫一般是只讀的,並接收主資料庫同步過來的數據,一個主資料庫可以有多個從資料庫,而一個從資料庫只能有一個主資料庫。通過redis的複製功能可以很好的實現資料庫的讀寫分離,提高伺服器的負載能力。主資料庫主要進行寫操作,而從資料庫負責讀操作。

Redis主從複製:主從複製可以允許多個slave server 擁有和master server相同的資料庫副本

1、Redis主從複製的特點:

a、  master 可以有多個slave

b、  多個slave 可以鏈接同一個master外,還可以鏈接其他slave

c、  主從複製不會阻塞master,在數據同步的時候,master可以繼續處理client請求

d、  提高系統的伸縮性

2、Redis主從複製的過程:

a、  slave與master建立鏈接,發送sync同步請求。

b、  master會啟動一個後臺進程,將資料庫快照保存到文件中,同時master主進程會開始收集新的寫命令並緩存。

c、  後臺完成保存後,就將此文件發送給slave

d、  Slave將此文件保存到硬碟上。

3、Redis 主從複製操作步驟

環境:

Redis主從結構支持一主多從(所有從節點的配置都一樣)

master:192.168.6.190

slave:192.168.6.191

配置:

 配置slave伺服器,在slave伺服器的配置文件中加入一下代碼

slaveof 192.168.222.1 6379 #指定master的ip和埠

Masterauth jalja #主機密碼

複製代碼
################################# REPLICATION #################################

# Master-Slave replication. Use slaveof to make a Redis instance a copy of
# another Redis server. A few things to understand ASAP about Redis replication.
#
# 1) Redis replication is asynchronous, but you can configure a master to
#    stop accepting writes if it appears to be not connected with at least
#    a given number of slaves.
# 2) Redis slaves are able to perform a partial resynchronization with the
#    master if the replication link is lost for a relatively small amount of
#    time. You may want to configure the replication backlog size (see the next
#    sections of this file) with a sensible value depending on your needs.
# 3) Replication is automatic and does not need user intervention. After a
#    network partition slaves automatically try to reconnect to masters
#    and resynchronize with them.
#
# slaveof <masterip> <masterport>
slaveof 192.168.6.190 6379
# If the master is password protected (using the "requirepass" configuration
# directive below) it is possible to tell the slave to authenticate before
# starting the replication synchronization process, otherwise the master will
# refuse the slave request.
#
# masterauth <master-password>
masterauth jalja
複製代碼

啟動master伺服器:

[root@localhost bin]# ./redis-server /usr/local/redis/etc/redis.conf

查看master配置信息:127.0.0.1:6379> info

複製代碼
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.6.191,port=6379,state=online,offset=141,lag=0
master_repl_offset:141
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:140
複製代碼

啟動slave伺服器:

[root@localhost bin]# ./redis-server /usr/local/redis/etc/redis.conf

查看slave配置信息:127.0.0.1:6379> info

# Replication
role:slave
master_host:192.168.6.190
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:99
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

測試:

master:

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name jalja
OK
127.0.0.1:6379> 

slave:

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set name jalja
OK
127.0.0.1:6379> 

配置時遇到錯誤:master_link_status:down

1、確定master與slave的redis埠是開放的,未被防火牆攔截

2、修改 master redis.cnf 文件中bind 為bind 0.0.0.0

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ,不要建output文件夾 好像這兩個圖片顯示不出來了 12:44:34,422 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java class ...
  • 1.打開"終端視窗",輸入"sudo apt-get update"-->回車-->"輸入當前登錄用戶的管理員密碼"-->回車,就可以了。 2.打開"終端視窗",輸入"sudo apt-get install openssh-server"-->回車-->輸入"y"-->回車-->安裝完成。 3.打 ...
  • 1、Redis是一個支持持久化的記憶體資料庫,redis會經常將記憶體中的數據同步到硬碟上來保證數據持久化,從而避免伺服器宕機數據丟失問題,或者減少伺服器記憶體消耗提高性能。 2、Redis的虛擬記憶體與操作系統中的虛擬記憶體不是一回事,但思路相同。就是將不經常訪問的數據從記憶體交換到磁碟中,從而騰出寶貴的記憶體... ...
  • binlog2sql是大眾點評開源的一款用於解析binlog的工具,在測試環境試用了下,還不錯。 其具有以下功能 1. 提取SQL 2. 生成回滾SQL 關於該工具的使用方法可參考github操作文檔:https://github.com/danfengcao/binlog2sql 個人感覺該文檔已 ...
  • 轉載:http://www.cnblogs.com/djcsch2001/articles/1823459.html 索引,索引的建立、修改、刪除 索引索引是關係資料庫中用於存放每一條記錄的一種對象,主要目的是加快數據的讀取速度和完整性檢查。建立索引是一項技術性要求高的工作。一般在資料庫設計階段的與 ...
  • 將hdfs里name與data清空,和將tmp清空 然後在hadoop目錄下運行 hadoop namenode -format 啟動 sbin/start-all.sh ...
  • Redis目前對事物的支持相對簡單。Redis只能保證一個client發起的事務中的命令可以連續的執行,而中間不會插入其他的client命令。當一個client在一個鏈接中發出multi命令時,這個鏈接會進入一個事務上下文,該連接後續的命令不會立即執行,而是先放到一個隊列中,當執行exec命令時,r... ...
  • ........ http://blog.csdn.net/se7en_q/article/details/47258007 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...