redis集群配置

来源:http://www.cnblogs.com/huali/archive/2016/08/26/5809987.html
-Advertisement-
Play Games

1、環境準備 1)準備6台ubuntu虛擬機 2)配置好IP(192.168.1.36,192.168.1.37,192.168.1.38, 192.168.1.40,192.168.1.41,192.168.1.42 三台master 三台slave) 3)安裝好openssh-server 2、 ...


1、環境準備

1)準備6ubuntu虛擬機

2)配置好IP192.168.1.36,192.168.1.37,192.168.1.38, 192.168.1.40192.168.1.41,192.168.1.42 三台master 三台slave

3)安裝好openssh-server

2、下載redis http://redis.io/download 本次使用3.2.3版本redis-3.2.3.tar.gz

3、安裝redis

1)對目錄提權 sudo chmod -R 777 /opt/

2)拷貝redis-3.2.3.tar.gz6台虛擬機下 如 /opt/

3)解壓redis-3.2.3.tar.gz

4)編譯redis 終端命令

cd redis-3.2.3/src

make

4、修改redis.config,修改後覆蓋6台虛擬機的redis.config,修改如下:

cluster-enabled yes //開啟集群

cluster-config-file nodes-6379.conf //節點配置信息

cluster-node-timeout 5000 //超時

cluster-slave-validity-factor 10 //slave 故障轉移次數

Cluster-migration-barrier 1 //最小slave數量

Cluster-require-full-coverage no //no 表示

appendonly yes //指定是否在每次更新操作後進行日誌記錄

appendfilename "appendonly.aof" //指定更新日誌文件名

logfile "/opt/redis-3.2.3/logs/redis-6379.log" //日誌記錄目錄 目錄不存在需先創建

bind 0.0.0.0 //允許遠程連接

5、啟動redis

$ cd redis-3.2.3/src

$ ./redis-server /opt/redis-3.2.3/redis.conf

6、驗證是否安裝成功

$ cd src

$ ./redis-cli

redis> set foo bar

OK

redis> get foo

"bar"

redis> del foo

(integer) 1

7、構建集群

1)選擇其中一臺安裝ruby,需要的情況每台都安裝一下

選擇一個下載源:ustc.edu.cn/ubuntu 測試最佳

sudo apt-get update

sudo apt-get install ruby (可能需要先sudo apt-get -f install)

gem install redis (可能需要授權sudo chmod -R 777 /var/

2)構建集群

./redis-trib.rb create --replicas 1 192.168.1.36:6379 192.168.1.37:6379 192.168.1.38:6379 192.168.1.40:6379 192.168.1.41:6379 192.168.1.42:6379

 

檢查集群狀態

redis-trib.rb check 192.168.1.36:6379

(在測試的時候 發現一個問題 其中一臺機器的redis節點,構建的時候自己的ip不能在前面2個位置)

8、測試

集群下 遠程連接get set 必須帶-c

$ ./redis-cli -h 192.168.1.36 -p 6379 -c


 

測試結果:

1)在master1set,可以在其他masterget,反之一樣

2)只down一臺master1,其從slave1會自動切換為master,當master1再次啟動,則變為slave了,角色互換

3)同down掉一臺master1和從slave1,則其他masterslave運行正常,但是 master1和從slave1的數據,無法獲取了,並且在其他master無法設置master1和從slave1所擁有的key值,當master1和從slave1再次啟動,則先啟動的master,後面的為slave

4key第一次set在哪裡,後面會一直set在該master上?





附:

redis 遠程連接主機(192.168.1.36

$ cd src

$ ./redis-cli -h 192.168.1.36 -p 6379

$ ./redis-cli -h 192.168.1.36 -p 6379 -a 123456 (帶密碼)

強制關閉redis

netstat –ntlp |grep 6379

kill -9 pid


//刪除當前資料庫中的所有Key

flushdb

//刪除所有資料庫中的key

flushall


刪除aofrdb,conf 3個文件刪除


參考資料:

http://www.tuicool.com/articles/aQbQ3u

http://hot66hot.iteye.com/blog/2050676

www.cnblogs.com/yuanermen/p/5717885.html

http://blog.csdn.net/jthink_/article/details/50373959

http://www.freeteam.cn/site/FreeCMS/share/info/2016/5175.html



問題:都掛了,如何再次構建集群,數據是否還在,其中master和對應slave掛了 如何再次加入集群


192.168.1.43

RedisLive集群監控

sudo apt-get install python-pip

http://sofar.blog.51cto.com/353572/1369266/

http://blog.csdn.net/fengspg/article/details/51010011



redis-stat集群監控

http://my.oschina.net/guol/blog/182265?p=2&temp=1472112097074#blog-comments-list

http://www.tuicool.com/articles/ae6bUfN

需要安裝一臺redis 用於監測 不用更改redis.config 0.0.0.0

sudo
apt-get install ruby 

sudo apt-get install ruby-dev

sudo
gem install redis-stat
命令行顯示方式:
$
./redis-stat 172.168.63.201:7000 172.168.63.201:7001 5
web界面方式:
$
./redis-stat 172.168.63.201:7000 172.168.63.201:7001 –server=8080
10--daemon
說明:表示每個10秒列印一次信息,--daemon表示在後臺掛起執行;
127.0.0.1:8080
如果你運行的操作是Windows,那麼只能在JRuby上安裝redis-stat。需要註意的是,Windows的預設命令提示符下,終端顏色不能夠被很好的支持。



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

-Advertisement-
Play Games
更多相關文章
  • 上手開發 iOS 一段時間後,我發現並不能只著眼於完成需求,利用閑暇之餘多研究其他的開發技巧,才能在有限時間內提升自己水平。當然,“其他開發技巧”這個命題對於任何一個開發領域都感覺不找邊際,而對於我來說,嘗試接觸 objc/runtime 不失為是開始深入探索 iOS 開發的第一步。 剛瞭解 run ...
  • Xamarin提示Build-tools版本過老 錯誤信息:G:\XamarinDemo\Xamarin.Forms-master\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Suppor ...
  • 當第一次載入Singleton類時不會初始化sInstance,只有在第一次調用Singleton的getInstance方法時才會導致sInstance被初始化。因此第一次調用getInstance方法會導致 虛擬機載入SingletonHolder類,這種方法不僅能夠確保線程安全,也能夠保證單例 ...
  • 在2016 蘋果全球開發者大會(WWDC)期間, 蘋果一如既往地給開發者們披露了新版的集成開發工具 – Xcode, 在過去的每一次大版本發佈中,蘋果都會積極地改進開發工具,添加一些極具吸引力的新功能,今年也不例外。 1. Swift 2 and 3 過去每一版的Xcode 都和固定版本的Swift ...
  • 直接上代碼:註釋都寫的很清楚了。 public class Entry implements Parcelable{ public int userID; public String username; public boolean isMale; public Book book;//序列化對象可 ...
  • 今天博客的主題是Keychain, 在本篇博客中會通過一個登陸的Demo將用戶名密碼存入到KeyChain中,並且查看一下KeyChain中存的是什麼東西,把這些內容給導出來。當然本篇博客的重點不是如何使用Keychain來存儲你的用戶名和密碼了。不過今天的博客中會用到這些知識。Apple的開發著文 ...
  • View滑動是自定義ViewGroup中十分常見的一個功能。Android提供了多種View滑動的方法。 1. layout方法 2. offsetLeftAndRight()與offsetTopAndBottom方法 3. LayoutParams方法 4. scrollTo 與scrollBy方 ...
  • 一、安裝JDK 1、用戶可以在Oracle JDK的官網下載相應版本的JDK,本例以JDK 1.6為例,官網地址為http://www.oracle.com/tech-network/java/javase/downloads/index.html。 2、配置環境變數,在/etc/profile增加 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...