Linux 搭建redis-cluster

安装一些依赖包

这不是必须的,但有的机器上没有这些包
sudo apt-get install build-essential
sudo apt-get install gcc

搭建过程

以下是给老美写的一个搭建过程的英文版,基本上都是每一步的命令
1. Create directory
sudo mkdir /opt/redis
cd /opt/redis
2. Download install packages
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
wget https://rubygems.global.ssl.fastly.net/rubygems/rubygems-2.5.0.tgz
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.geminstall
3. install ruby
a. sudo tar -zxvf ruby-2.3.0.tar.gz
b. cd ruby-2.3.0
c. sudo ./configure -prefix=/usr/local/ruby
d. sudo make
e. sudo make install
f. sudo cp ruby /usr/local/bin/
g. cd ..
4. install rubygems
a. sudo tar -zxvf rubygems-2.5.0.tgz
b. cd rubygems-2.5.0/
c. sudo ruby setup.rb
d. sudo cp bin/gem /usr/local/bin/
e. cd ..
5. install redis-3.2.2.gem
sudo gem install -l redis-3.2.2.gem

这步可能会遇到下面的问题

cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

解决办法:

sudo apt-get install zlib1g-dev  
cd  /opt/redis/ruby-2.3.0/ext/zlib
ruby extconf.rb
sudo make
sudo make instal

6.install redis
a. sudo tar -zxvf redis-3.0.7.tar.gz
b. cd redis-3.0.7
c. sudo make
d. sudo make install
e. sudo cp src/redis-trib.rb /usr/local/bin/
f. sudo mkdir -p /usr/local/redis/6379 /usr/local/redis/6380
7.create config file
sudo mkdir -p /usr/local/redis/6379 /usr/local/redis/6380
8.input config file



sudo bash -c 'cat > /usr/local/redis/6379/redis.conf <<EOF
port 6379
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
appendfsync everysec
logfile redis.log
loglevel notice
#maxmemory 1gb
#maxmemory-policy allkeys-lru
#requirepass 123456
#masterauth 123456
EOF'

sudo bash -c 'cat > /usr/local/redis/6380/redis.conf <<EOF
port 6380
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
appendfsync everysec
logfile redis.log
loglevel notice
#maxmemory 1gb
#maxmemory-policy allkeys-lru
#requirepass 123456
#masterauth 123456
EOF'

9.start redis
execute same steps in 3 hosts
cd /usr/local/redis/6379
sudo redis-server redis.conf
cd /usr/local/redis/6379
sudo redis-server redis.conf
use ps –ef | grep redis:


10.create cluster
execute whatever host
redis-trib.rb create –replicas 1 162.0.84.173:6379 162.0.84.173:6380 162.0.12.36:6379 162.0.12.36:6380 166.0.114.158:6379 166.0.114.158:6380

注意这个地方只能用ip,不要用hostname,否则会出问题,可能是这个ruby工具不识别hostname,如果这个地方出了问题,可以删除每个实例目录下的nodes.conf文件并重启全部实例,再执行创建命令;
–replicas 1 表示几个复制,1 表示一个主机一个从机
11.登录集群

redis-cli -h localhost -p 6379 -c

12.给集群设置密码
去每个配置文件里去掉这两句的注释

#requirepass 123456
#masterauth 123456

重启所以实例即可
这两句不能在创建集群的时候加入,加入会重建失败,原因嘛应该是redis-trib.rb工具不支持吧。
设置密码后登录用:

redis-cli -h localhost -p 6379 -a 123456 -c

13 一些命令问题
登录集群后info,keys, lua脚本执行等这些命令只能查看本节点的信息,因为redis不支持跨节点的命令,但是如果访问一个确定的key时会自动跳转到那个节点,前提是登陆的时候用了-c选项。

by David_ao

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值