Redis集群安装问题


安装Redis集群
1.安装依赖的包
yum install gcc
2.安装前先验证一下系统是否已经安装:
备注:系统是centos 6.3 ,使用上面命令安装的ruby 版本是1.8.7 ,和在ubuntu 中安装的ruby的版本一样,不过在fedora 中则是最新的。
其他:安装好之后,想先试一下ruby的实时解释器irb,输入 irb ,却提示 bash: irb: command not found

使用 locate irb 或者 rpm -qa | grep irb ,发现原来竟然还没有安装 irb 。所以还需要另外安装。
这就难了,我怎么知道irb 在yum 源里的包的名称呢?肯定不是irb .那就 yum search irb 一下,找到了,就是ruby-irb ;
yum install ruby-irb
打开终端,使用yum命令行工具来安装Ruby和RubyGems,如下所示

3、安装Ruby
1.安装基本的包:
yum install -y ruby
2.安装额外的Ruby包和文档:
yum install -y ruby-devel ruby-docs ruby-ri ruby-rdoc
3.安装RubyGems:
yum install -y rubygems
4.安装gem-redis
gem install -l redis-3.0.6.gem
5.安装Redis
make MALLOC=libc

问题一:
安装redis集群问题:
require': cannot load such file -- rubygems.rb
解决方法:问题重新联网安装ruby、rubyGems

问题二:
Hint: It's a good idea to run 'make test' ;)
[root@it01 src]# make test
You need tcl 8.5 or newer in order to run the Redis test
解决方法:
yum install tcl

4、配置
 mkdir -p /usr/local/redis/bin  //创建可执行文件夹 
 mkdir -p /usr/local/redis/ect  //创建配置文件夹
 mv redis.conf /usr/local/redis/etc
  

 cp mkreleasehdr.sh redis-benchmark redis-check-aof  redis-cli redis-server /soft/redis-7002/bin
启动
./soft/redis-7001/bin/redis-server /soft/redis-7001/etc/redis.conf
./soft/redis-7002/bin/redis-server /soft/redis-7002/etc/redis.conf

启动集群
./redis-trib.rb create --replicas 1 10.0.0.2:7001 10.0.0.3:7001 10.0.0.4:7001 10.0.0.4:7002 10.0.0.3:7002 10.0.0.2:7002

问题:
/usr/lib/ruby/gems/1.8/gems/redis-3.3.2/lib/redis/connection/ruby.rb:111:in `_write_to_socket': Connection timed out (Redis::TimeoutError)
解决
gem uninstall -i /usr/lib/ruby/gems/1.8 redis

问题:
/redis-trib.rb create --replicas 1 10.0.0.2:7001 10.0.0.3:7002 10.0.0.3:7001 10.0.0.4:7002 10.0.0.4:7001 10.0.0.2:7002
/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 --version 3.2.0





问题:集群启动问题: 模式不对,
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
解决:
卸载:yum remove rubygems -y
卸载:yum remove ruby 1.8.7 -y

离线安装高版本ruby

# tar zxvf ruby-2.3.0.tar.gz
# cd ruby-2.3.0.tar.gz
# ./configure --enable-shared --enable-pthread --prefix=/usr/local/ruby
# make && make install
修改环境变量才可以起作用



启动问题:
WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
25064:M 14 Mar 15:50:20.322 # Server started, Redis version 3.2.8
25064:M 14 Mar 15:50:20.322 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

解决方法:vi /etc/sysctl.conf 增加配置项目:重启机器
vm.overcommit_memory = 1
net.core.somaxconn = 2048
执行: sysctl -p


不重启:
1. echo "vm.overcommit_memory=1" > /etc/sys/ctl.conf
2. echo 1 > /proc/sys/vm/overcommit_memory

echo never > /sys/kernel/mm/transparent_hugepage/enabled

问题三解决:也放到/etc/rc.local文件中作为永久关闭。
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi



问题:[ERR] Not all 16384 slots are covered by nodes.
解决方法: 删除数据重新启动


问题:rescue in _write_to_socket': Connection timed out (Redis::TimeoutError)
解决方法:
gem uninstall redis --version 3.3.2
gem install redis --version 3.0.0




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值