1. 程式人生 > >Redis叢集安裝步驟

Redis叢集安裝步驟

一、安裝redis環境

1. 安裝redis

安裝的前提條件:需要安裝gcc:yum install gcc-c++

  1. 下載redis的原始碼包
  2. 把原始碼包上傳到linux伺服器
  3. 解壓原始碼包(上傳到哪個路徑就在哪個路徑解壓)

tar -zxvf redis-3.0.0.tar.gz

  1. make
  2. make install

[[email protected] redis-3.0.0]# make install PREFIX=/usr/local/redis

2. 啟動redis

  1. 前端啟動模式

/usr/local/redis/bin/redis-server

預設是前端啟動模式,埠是6379

  1. 後端啟動模式
  1. 從redis的原始碼目錄中複製redis.conf到redis的安裝目錄。
  2. 修改配置檔案

  1. [[email protected] bin]# ./redis-server redis.conf

3. Redis常用命令

127.0.0.1:6379> set a 10

OK

127.0.0.1:6379> get a

"10"

4. 常用資料型別

String

Hash

List

Set

SortedSet

二、Redis叢集的搭建

1. redis叢集相關概念

redis-cluster把所有的物理節點對映到[0-16383]slot,cluster 負責維護node<->slot<->value

Redis 叢集中內建了 16384 個雜湊槽,當需要在 Redis 叢集中放置一個 key-value 時,redis 先對 key 使用 crc16 演算法算出一個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應一個編號在 0-16383 之間的雜湊槽,redis 會根據節點數量大致均等的將雜湊槽對映到不同的節點

Key:a

計算a的hash值,例如值為100,100這個槽在server1上,所以a應該放到server1.

Key:hello

Hash值:10032,此槽在server2上。Hell可以應該存在server2.

2. redis-cluster投票:容錯

(1)領著投票過程是叢集中所有master參與,如果半數以上master節點與master節點通訊超過(cluster-node-timeout),認為當前master節點掛掉.

(2):什麼時候整個叢集不可用(cluster_state:fail)? 

    a:如果叢集任意master掛掉,且當前master沒有slave.叢集進入fail狀態,也可以理解成叢集的slot對映[0-16383]不完成時進入fail狀態. ps : redis-3.0.0.rc1加入cluster-require-full-coverage引數,預設關閉,開啟叢集相容部分失敗.

    b:如果叢集超過半數以上master掛掉,無論是否有slave叢集進入fail狀態.

  ps:當叢集不可用時,所有對叢集的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)錯誤

3. 我們的叢集結構

叢集中有三個節點的叢集,每個節點有一主一備。需要6臺虛擬機器。

搭建一個偽分散式的叢集,使用6個redis例項來模擬。

  1. 搭建叢集需要的環境

搭建叢集需要使用到官方提供的ruby指令碼。

需要安裝ruby,步驟如下:

yum install ruby

yum install rubygems

 

redis叢集管理工具redis-trib.rb

[[email protected] ~]# cd redis-3.0.0

[[email protected] redis-3.0.0]# cd src

[[email protected] src]# ll *.rb

-rwxrwxr-x. 1 root root 48141 Apr  1 07:01 redis-trib.rb

[[email protected] src]#

指令碼需要的ruby包:

需要上傳到linux服務。

安裝ruby的包:

gem install redis-3.0.0.gem

[[email protected] ~]# gem install redis-3.0.0.gem

Successfully installed redis-3.0.0

1 gem installed

Installing ri documentation for redis-3.0.0...

Installing RDoc documentation for redis-3.0.0...

  1. 叢集的搭建

第一步:建立6個redis例項,埠號從7001~7006

 

第二步:修改redis的配置檔案

修改埠號

開啟cluster-enable前面的註釋。

第三步:把建立叢集的ruby指令碼複製到redis-cluster目錄下。

第四步:啟動6個redis例項

修改埠號從7001修改到7006

第五步:建立叢集啟動指令碼

第六步:建立叢集。

./redis-trib.rb create --replicas 1 192.168.221.130:7001 192.168.221.130:7002 192.168.221.130:7003 192.168.221.130:7004 192.168.221.130:7005  192.168.221.130:7006

  1. 測試叢集

[[email protected] redis-cluster]# redis01/redis-cli -h 192.168.221.130 -p 7002 -c

  1. 關閉redis

redis01/redis-cli -p 7001 shutdown

  1. 連線工具RedisDesktopManager測試

如果連線不上,可能是防火牆埠號沒放行,步驟如下:

1.開啟防火牆配置:vim /etc/sysconfig/iptables

2.新增放行配置

3.重新啟動  service iptables restart