redis叢集部署以及一些坑

來源:互聯網
上載者:User

redis叢集部署以及一些坑

開始部署之前,務必先看第6條

1.從官網下載和編譯redis安裝包
 $ wget http://download.redis.io/releases/redis-3.2.5.tar.gz  $ tar xzf redis-3.2.5.tar.gz $ cd redis-3.2.5 $ make



2.配置redis
 port 7000  cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes


如果你不想做持久化的話,appendonly yes -> appendonly no
假設我們部署3個redis nodes, 那麼需要建立6個redis執行個體,其中3個node為另外3個nodes的slave;
 mkdir cluster-test cd cluster-test mkdir 7000 7001 7002 7003 7004 7005
保證這6個目錄下的redis.conf的port 分別為7000~7005 
3.啟動所有redis執行個體
分別進入六個目錄,啟動相應的redis-server
cd 7000../redis-server ./redis.conf
4.安裝redis-trib.rb運行環境
 redis-trib.rb是ruby代碼,所以先要安裝ruby
 yum install ruby  gem install redis -- 安裝redis依賴
因為牆的問題,gem install redis 可能會失敗,改用國內的源
 gem sources --remove https://rubygems.org/ 刪掉原來的源 gem sources -a http://gems.ruby-china.org  改用國內的源  gem sources -l 查看現有的源  gem install redis 安裝redis依賴
5.建立叢集
 ./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 


6.注意的地方
(1) 使用redis-trib.rb構建叢集,完成前不要配置密碼
(2) 叢集構建完再通過config set + config rewrite命令逐個執行個體設定密碼
(3) 對叢集設定密碼,requirepass和masterauth都需要設定
(4) 各個節點密碼都必須一致,否則Redirected就會失敗
 config set masterauth  yourpasswd  config set requirepass  yourpasswd auth yourpasswd config rewrite

(5) 如果提示一下錯誤,那麼是redis依賴版本錯誤,移除當前redis依賴,安裝指定版本即可
/usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/connection/ruby.rb:111:in `rescue in _write_to_socket': Connection timed out (Redis::TimeoutError)     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/connection/ruby.rb:104:in `_write_to_socket'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/connection/ruby.rb:131:in `block in write'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/connection/ruby.rb:130:in `loop'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/connection/ruby.rb:130:in `write'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/connection/ruby.rb:374:in `write'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:271:in `block in write'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:250:in `io'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:269:in `write'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:228:in `block (3 levels) in process'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:222:in `each'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:222:in `block (2 levels) in process'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:367:in `ensure_connected'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:221:in `block in process'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:306:in `logging'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:220:in `process'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis/client.rb:120:in `call'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis.rb:2705:in `block in method_missing'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis.rb:58:in `block in synchronize'     from /usr/local/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis.rb:58:in `synchronize'     from /usr/local/lib/ruby/gems/2.3.0/gems/redis-3.3.2/lib/redis.rb:2704:in `method_missing'     from ./redis-trib.rb:212:in `flush_node_config'     from ./redis-trib.rb:776:in `block in flush_nodes_config'     from ./redis-trib.rb:775:in `each'     from ./redis-trib.rb:775:in `flush_nodes_config'     from ./redis-trib.rb:1296:in `create_cluster_cmd'     from ./redis-trib.rb:1701:in ` 
那是gem 刪除 redis-3.3.2 外掛程式版本,改用3.0.0
gem list
 gem uninstall redis --version 3.3.2
 gem install redis --version 3.0.0
 gem list

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.