redis至少須要6個節點才能工做,節點以下:node
127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005redis
2-1 下載redis,版本3.0以上才支持集羣ruby
2-2 編譯安裝redisapp
解壓 tar -zxf redis3.x.x.tar.gz
cd ./redis3.x.x make make install
說明:安裝後在./redis3.x.x/bin目錄下多了下面幾個文件:工具
2-3 建立集羣文件結構性能
mkdir cluster cd cluster mkdir 7000 mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005
2-4 拷貝並修改配置文件redis.conf測試
cp ./redis3.x.x/redis.conf ./cluster vi redis.conf
查找並修改配置文件中的下列信息ui
port 7000 //端口7000 bind 127.0.0.1 //默認ip爲127.0.0.1 daemonize yes //redis後臺運行 cluster-enabled yes //開啓集羣 把註釋#去掉 cluster-config-file nodes.conf //集羣的配置 cluster-node-timeout 15000 //請求超時 默認15秒,可自行設置 appendonly yes //aof日誌開啓 有須要就開啓,它會每次寫操做都記錄一條日誌
2-5 將redis.conf複製到7000-7005文件夾中,並將redis.conf中的port分別改爲相應的7000-7005spa
注意:拷貝完成以後要修改7001/7002/7003/7004/7005目錄下面redis.conf文件中的port參數,分別改成對應的文件夾的名稱日誌
2-6 分別啓動這6個redis實例,如
cd /usr/local/cluster/7000 redis-server redis.conf
2-7 檢查啓動狀況
ps -ef | grep redis
若是顯示7000-7005說明所有啓動,若是沒有啓動:
緣由1:非root用戶操做
緣由2:端口被佔用
netstat -anp|grep 7001 或者 lsof -i:7001
2-8 建立redis集羣
cd /usr/local/redis3.0/src ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
2-9 如執行上面的命令報錯,由於執行的是ruby腳本,須要ruby的環境
錯誤:
/usr/bin/env: ruby: No such file or directory
解決: 安裝ruby的環境
apt-get install ruby
2-10 執行2-8命令,如報錯提示缺乏rubygems組件
錯誤:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError) from ./redis-trib.rb:24
解決:
apt-get install rubygems
2-10 執行2-8命令,如報錯提示不能加載redis,是由於缺乏redis和ruby的接口,
錯誤內容:
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./redis-trib.rb:25
解決:
gem install redis
2-11 再次執行2-8命令,正常執行,中間需輸入yes,而後配置完成
2-12 使用redis-cli命令進入集羣環境
redis-cli -c -p 7000