redis三種集群策略


主從復制

  • 主數據庫可以進行讀寫操作,當讀寫操作導致數據變化時會自動將數據同步給從數據庫
  • 從數據庫一般都是只讀的,並且接收主數據庫同步過來的數據
  • 一個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 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM