本人共有三臺虛擬機–192.168.223.144 192.168.223.145 192.168.223.146 .
計劃每臺機器創建兩個redis實例, 每臺都創建7000和7001兩個端口 . 所以一共6個節點, 3個master, 3個salve.
安裝前:
安裝前, 需要明確幾個概念.
- make
- 這一步是用來編譯的,它從Makefile中讀取指令,然後編譯 , 大多數的源代碼包都經過這一步進行編譯
- make test / make check
- 這一步就是對上一步 make 的檢查了,要確保 make 是沒有錯誤的,也就是這一步的 test、check要全部是 OK 的,error 爲0
- sudo make install
- 這一步是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置
開始安裝:
下載安裝包,並解壓到指定目錄 .
進入redis目錄, 執行”make” 編譯命令 .
出現下面錯誤 : /bin/sh: cc: command not found redis
錯誤原因 : 沒有gcc, 進行安裝:yum install gcc- 接着使用make命令, 出現另一個錯誤 .
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
解決方式(添加參數) : make MALLOC=libc 執行”make test”, 還是出現錯誤 .
You need tcl 8.5 or newer in order to run the Redis test
解決方式 : yum install tcl 8.5再次”make test” 沒有出現錯誤 , 說明可以進行安裝了 .
執行命令 : make PREFIX=/usr/local/application/redis install
PREFIX : 執行安裝之後生成文件路徑, redis會生成bin目錄 , 我指定在解壓後的redis目錄下
- 分別在三臺機器都進行安裝, 下面開始創建配置文件.
- 在三臺redis目錄下創建了”cluster”目錄.
- 此時三臺機器redis目錄下都會有”cluster”目錄 . 然後在目錄下創建”7000”和”7001”目錄 , 分別存放端口7000和端口7001的redis.conf配置文件.
- 拷貝redis目錄下的redis.conf配置文件到7000和7001目錄下.
此時需要修改三臺機器上六個redis.conf配置文件 .
- 在三臺redis目錄下創建了”cluster”目錄.
分別修改六個redis.conf配置文件 .
注意要對應各自ip和端口.
port 7000 //端口7000,7001,7002
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日誌開啓 有需要就開啓,它會每次寫操作都記錄一條日誌
進入redis目錄下的bin, 執行腳本, 啓動redis服務 .
注意 : 啓動要加上配置文件路徑.
./redis-server ../cluster/7000/redis.conf
./redis-server ../cluster/7001/redis.conf查看啓動情況 .
啓動正常之後, 創建集羣 .
Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中 , 使用這個工具即可完成集羣安裝.
進入redis目錄下的src目錄執行 :
./redis-trib.rb create –replicas 1 192.168.223.144:7000 192.168.223.144:7001192.168.223.145:7000192.168.223.145:7001192.168.223.146:7000192.168.223.146:7001
說明 : –replicas 1 表示每個主節點跟一個從節點
命令只需要執行一次即可 .又出現錯誤 .
因爲這工具是由ruby實現, 所以必須安裝ruby環境 .
yum -y install ruby ruby-devel rubygems rpm-build
既然ruby程序要訪問redis數據庫,總得有個連接接口, 然後執行下面命令 :
sudo gem install redis- 如果出現下面錯 , 刪除掉, bin目錄下的cluster-config-file 相關文件刪掉 , 然後重新啓動 .
啓動完成後, 再次執行集羣命令, 終於看到勝利曙光 .
啓動客戶端測試,記住要加集羣參數 “-c”.
至此集羣就安裝完畢, 本人剛開始寫博客不久, 有什麼不足地方請指正,