redis cluster 模式安装部署详情

环境:

两台centos 6.5 服务器

IP:172.16.57.96

IP:172.16.57.97


步骤:

1、环境安装 

yum -y install make automake gcc gcc-c++ libstdc++-devel tcl ruby rubygems zlib-devel openssl-devel curl
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p

2、下载

cd /usr/local/src
wget http://download.redis.io/releases/redis-3.0.5.tar.gz

3 步骤

cd /usr/local/src
tar zxvf redis-3.0.5.tar.gz
cd redis-3.0.5
make MALLOC=libc
make install PREFIX=/usr/redis-cluster/

4、配置端口

cd /usr/redis-cluster/
cp -r  bin 7000
cp -r  bin 7001
cp -r  bin 7002
cp -r /usr/local/src/redis-3.0.5/redis.conf 7000/
cp -r /usr/local/src/redis-3.0.5/redis.conf 7001/
cp -r /usr/local/src/redis-3.0.5/redis.conf 7002/

4-1、增加环境变量vim /etc/profile

export PATH=/usr/redis-cluster/bin:$PATH
source /etc/profile

5、配置文件修改  vim 7000/redis.conf (其他两个目录均需要修改)

daemonize yes
pidfile /var/run/redis_7000.pid
port 7000
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000


6、启动脚本

#!/bin/bash
allpath="/usr/redis-cluster"
cd $allpath/7000
./redis-server redis.conf
cd $allpath/7001
./redis-server redis.conf
cd $allpath/7002
./redis-server redis.conf


7、启动服务

chmod 777 redis-start-all.sh
sh redis-start-all.sh


8、检查

ps -ef |grep redis
netstat -nuplt

在另外节点服务器上分别执行以上操作(1、2、3执行,4、5、6、7可以从配置好的这台拷贝更新)。

确保以上节点中redis服务已经正常启动。


下面开始集群操作

9、集群操作

9.1  执行命令:

cd /usr/redis-cluster/
gem install redis-3.0.5.gem
gem install redis --version 3.0.5 #时间有点久,耐心等待

注意:gem install redis --version 3.0.0 失败的话,需要修改一下gem的源

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/


手工下载并安装:

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem
cp -r /usr/local/src/redis-3.0.5/src/redis-trib.rb ./


执行的集群操作命令:

./redis-trib.rb create --replicas 1 172.16.57.96:7000 172.16.57.96:7001 172.16.57.96:7002 172.16.57.97:7000 172.16.57.97:7001 172.16.57.97:7002
#--replicas 1 此处1为每个主节点后面都有一个从节点
#--replicas 0 此处0为没有从节点

Using 3 masters:

172.16.57.97:7000

172.16.57.96:7000

172.16.57.97:7001

以上三个作为集群主节点


9.2 根据提示,在 Can I set the above configuration? (type 'yes' to accept): yes (此处输入yes 回车)


[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered. 


提示以上信息则完成。



10、 集群验证

执行命令:

cd /usr/redis-cluster/bin 

./redis-cli -c -p 7001

127.0.0.1:7001> set name andy

-> Redirected to slot [5798] located at 172.16.57.96:7000

OK

172.16.57.96:7000> get name

"andy"


登录另外一台或者链接不同端口:

cd /usr/redis-cluster/bin 

./redis-cli -c -h 172.16.57.97 -p 7002


172.16.57.97:7002> get name

-> Redirected to slot [5798] located at 172.16.57.96:7000

"andy"

172.16.57.96:7000> 


返回 name 值为 andy 即可


命令 

redis-cli -c -p 7000

> cluster info

> cluster nodes


故障问题


1 报错 Connecting to node 172.16.57.97:7000: OK

[ERR] Node 172.16.57.97:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.


解决步骤:

killall  redis-server
find ./700* -type f -name "appendonly*" -o -name "nodes*" -o -name "dump.rdb" 
find ./700* -type f -name "appendonly*" -o -name "nodes*" -o -name "dump.rdb"  |xargs rm -rf

然后重新执行集群命令


2 Redis的Cluster集群的时候,在执行gem install redis时,提示如下错误:

gem install redis
    ERROR:  Error installing redis:
     redis requires Ruby version >= 2.2.2.

yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby:

1、安装RVM(具体命令可以查看官网,Ruby官网地址 和 Ruby官网安装教程):

复制代码

//具体RVM安装命令地址:http://rvm.io/

[root@linux ~]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E37D2BAF1CF37B13E2069D6956105BD0E739499BDB 
[root@linux ~]# curl -sSL https://get.rvm.io | bash -s stable
[root@linux ~]# find / -name rvm -print

复制代码

/usr/local/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm/src/rvm/scripts/rvm
/usr/local/rvm/bin/rvm
/usr/local/rvm/lib/rvm
/usr/local/rvm/scripts/rvm
[root@linux ~]# source /usr/local/rvm/scripts/rvm


2、查看rvm库中已知的ruby版本:

[root@linux ~]# rvm list known
MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
….


3、安装一个ruby版本:

[root@linux ~]# rvm install 2.4.1
    Searching for binary rubies, this might take some time.
    Found remote file https://rvm_io.global.ssl.fastly.net/binaries/centos/7/x86_64/ruby-2.4.1.tar.bz2
    Checking requirements for centos.
    Requirements installation successful.
    ruby-2.4.1 - #configure
    ruby-2.4.1 - #download
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 14.1M  100 14.1M    0     0    97k      0  0:02:27  0:02:27 --:--:--  159k
    No checksum for downloaded archive, recording checksum in user configuration.
    ruby-2.4.1 - #validate archive
    ruby-2.4.1 - #extract
    ruby-2.4.1 - #validate binary
    ruby-2.4.1 - #setup
    ruby-2.4.1 - #gemset created /usr/local/rvm/gems/ruby-2.4.1@global
    ruby-2.4.1 - #importing gemset /usr/local/rvm/gemsets/global.gems..............................
    ruby-2.4.1 - #generating global wrappers........
    ruby-2.4.1 - #gemset created /usr/local/rvm/gems/ruby-2.4.1
    ruby-2.4.1 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
    ruby-2.4.1 - #generating default wrappers........


4、使用一个ruby版本:

  [root@linux ~]# rvm use 2.4.1

       Using /usr/local/rvm/gems/ruby-2.4.1


5、设置默认版本:(设置ruby2.4.1为默认的ruby,因为还安装有1.8.3)

  [root@linux ~]# rvm use 2.4.1 --default

        Using /usr/local/rvm/gems/ruby-2.4.1


6、卸载一个已知版本:

  [root@linux ~]# rvm remove 2.3.4


7、查看ruby版本:

  [root@linux ~]# ruby --version

      ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

8、安装redis:

  [root@linux ~]# gem install redis

    Fetching: redis-4.0.1.gem (100%)

    Successfully installed redis-4.0.1

    Parsing documentation for redis-4.0.1

    Installing ri documentation for redis-4.0.1

    Done installing documentation for redis after 3 seconds

    1 gem installed


猜你喜欢

转载自blog.51cto.com/531117978/2311754