Redis三種集羣策略模式簡介之集羣模式搭建

主從複製

  • 主數據庫可以進行讀寫操作,當讀寫操作導致數據變化時會自動將數據同步給從數據庫
  • slave從數據庫一般都是隻讀的,並且接收主數據庫同步過來的數據
  • 一個master可以擁有多個slave,但是一個slave只能對應一個master

哨兵模式

  • 監控主從數據庫是否正常運行
  • master出現故障時,自動將slave轉化爲master
  • 多哨兵配置的時候,哨兵之間也會自動監控
  • 多個哨兵可以監控同一個redis

集羣模式

兩臺虛擬機CentOS搭建3 master、3 salve 環境。

(1)下載並解壓 

$ cd /root/software

$ wget http://download.redis.io/releases/redis-3.2.4.tar.gz

$ tar -zxvf redis-3.2.4.tar.gz 

(2)編譯安裝

$ cd redis-3.2.4
$ make && make install

(3)將 redis-trib.rb 複製到 /usr/local/bin 目錄下

$ cd src
$ cp redis-trib.rb /usr/local/bin/

(3)創建 Redis 節點

$ mkdir redis_cluster

  在 redis_cluster 目錄下,創建名爲7000、7001、7002的目錄,並將 redis.conf 拷貝到這三個目錄中  

$ mkdir 7000 7001 7002

$ cp redis.conf redis_cluster/7000

$ cp redis.conf redis_cluster/7001

$ cp redis.conf redis_cluster/7002

  分別修改這三個配置文件,修改如下內容 

   port  7000                                        //端口7000,7002,7003       

  bind 本機ip                                       //默認ip爲127.0.0.1 需要改爲其他節點機器可訪問的ip 否則創建集羣時無法訪問對應的端口,無法創建集羣

  daemonize    yes                               //redis後臺運行

  pidfile  /var/run/redis_7000.pid          //pidfile文件對應7000,7001,7002

  cluster-enabled  yes                           //開啓集羣  把註釋#去掉

  cluster-config-file  nodes_7000.conf   //集羣的配置  配置文件首次啓動自動生成 7000,7001,7002

  cluster-node-timeout  15000                //請求超時  默認15秒,可自行設置

  appendonly  yes                           //aof日誌開啓  有需要就開啓,它會每次寫操作都記錄一條日誌 

  接着在另外一臺機器上重複以上三步,只是把目錄改爲7003、7004、7005,對應的配置文件也按照這個規則修改即可.

(4)啓動各個節點

  第一臺機器上執行

redis-server redis_cluster/7000/redis.conf

redis-server redis_cluster/7001/redis.conf

redis-server redis_cluster/7002/redis.conf

  另外一臺機器上執行  

redis-server redis_cluster/7003/redis.conf

redis-server redis_cluster/7004/redis.conf

redis-server redis_cluster/7005/redis.conf

(5)檢查 redis 啓動情況

$ ps -aux| grep redis

(6)需要安裝 ruby

$ yum -y install ruby ruby-devel rubygems rpm-build

$ gem install redis

(7)創建集羣

  Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,第三步中已將它複製到 /usr/local/bin 目錄中,可以直接在命令行中使用了。使用下面這個命令即可完成安裝。

  redis-trib.rb  create  --replicas  1  192.168.31.245:7000 192.168.31.245:7001  192.168.31.245:7002 192.168.31.210:7003  192.168.31.210:7004  192.168.31.210:7005

(8)集羣驗證

  在第一臺機器上連接集羣的7002端口的節點,在另外一臺連接7005節點,連接方式爲 redis-cli -h 192.168.31.245 -c -p 7002  ,加參數 -C 可連接到集羣,因爲上面 redis.conf 將 bind 改爲了ip地址,所以 -c 參數不可以省略。在7005節點執行命令  set hello world ,然後在另外一臺7002端口,查看 key 爲 hello 的內容, get hello 。

發佈了625 篇原創文章 · 獲贊 534 · 訪問量 358萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章