redis在linux上传入集合自动转义,linux 部署redis集群 碰到的坑

1:

/usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis/client.rb:97:in `call': ERR Slot 16011 is already busy (Redis::CommandError)

這是由於上一次配置集群失敗時留下的配置信息導致的。只要把redis.conf中定義的 cluster-config-file 所在的文件刪除,重新啟動redis-server及運行redis-trib即可。

2:

/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)

from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'

from /usr/local/bin/redis-trib.rb:25:in `'

碰到這個問題我們需要通過gem在ruby中安裝redis軟件包

gem install redis(Gem是一個管理Ruby庫和程序的標准包,它通過Ruby Gem(如 http://rubygems.org/ )源來查找、安裝、升級和卸載軟件包,非常的便捷。)

3:

/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)

gem list

gem uninstall redis --version 3.3.2

gem install redis --version 3.0.0

gem list

檢查ruby中的redis版本是不是和你的redis版本一致

4:

redis集群搭建好以后測試集群是否成功,

redis01/redis-cli -h ip -p 7001 –c

說明:-h+host –p+端口號 –c 是要連接集群,

可以看到連接的是7001的節點,set  name的時候計算了存在哪個hash槽上,會跳轉到那個槽對應的節點。注意一定要加(-c)不然的話集群的其他機器連接的話會報錯

下面是在linux中安裝ruby的方式:(由於linux的集群啟動需要通過redis-trib.rb啟動)注意redis集群需要redis的版本在3.0+以上版本

yum -y install ruby ruby-devel rubygems rpm-build

使用ruby -v查看發現版本是2.0.0,還是搭建redis集群

ruby -v

ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

暫時沒有查到如何直接升級,只能使用源碼包方式進行安裝

1.下載源碼包

wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz

下載失敗提示Unable to establish SSL connection.

curl -O -L https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz

2.解壓並編譯安裝

tar xf ruby-2.2.7.tar.gz

cd ruby-2.2.7

./configure --prefix=/usr/local/ruby-2.2.7

make && make install

3.創建快捷鍵

需要先刪除舊的快捷方式重新創建

ln -s /usr/local/ruby-2.2.7/bin/ruby /usr/bin/ruby

ruby -v

ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-linux]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值