redis集群安装部署 ==================解决Redis集群安装过程中遇到的version问题,ruby升级问题==================此时redis官网最新版本为4.0.2一.单机版Redis安装1.下载redis.4.0.2.tar.gz2.tar -zxvf redis.4.0.
==================解决Redis集群安装过程中遇到的version问题,ruby升级问题==================
此时redis官网最新版本为4.0.2
一.单机版Redis安装
1.下载redis.4.0.2.tar.gz
2.tar -zxvf redis.4.0.2.tar.gz
3.编译 make
4.安装 make install PREFIX=/usr/local/redis
5.后台启动 cp /download/redis-4.0.2/redis.conf /usr/local/redis/bin/
6.修改守护进程 vi redis.conf => daemonize yes
7. [bin]# ./redis-server redis.conf
二.Redis集群安装
****************默认Cent6的ruby版本是1.8.x,但是redis4.0.2要求ruby2.2.2以上****************
会遇到以下安装问题:
[root@ip-172-31-7-228 download]# yum install ruby
[root@ip-172-31-7-228 download]# yum install rubygems
[redis-4.0.2]cd /download/redis-4.0.2/src/
[src]# ll *.rb
-rwxrwxr-x. 1 root root 60843 Sep 21 14:12 redis-trib.rb
[src]# yum install -y ruby ruby-devel rubygems rpm-build
上传redis-4.0.0.gem到download(redis-4.0.0.gem下载路径:https://rubygems.org/gems/redis/versions/4.0.0)
[download]# gem install /download/redis-4.0.0.gem
ERROR: Error installing /download/redis-4.0.0.gem:
redis requires Ruby version >= 2.2.2.
====================解决version=>2.2.2的问题==========start==========
[download]# yum install ruby
Loaded plugins: fastestmirror, presto
No such command: instal. Please use /usr/bin/yum --help
[root@ip-172-31-7-228 download]# yum install ruby
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: mirrors.shuosc.org
* extras: mirrors.neusoft.edu.cn
* updates: mirrors.neusoft.edu.cn
Setting up Install Process
......
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3(重要的key)
[download]curl -L get.rvm.io | bash -s stable
ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
[/]# gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
[/]# curl -L get.rvm.io | bash -s stable
[/]# find / -name rvm -print
/usr/local/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/scripts/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/scripts/src/rvm
/usr/local/rvm/scripts/src/rvm/scripts/rvm
/usr/local/rvm/scripts/src/rvm/lib/rvm
/usr/local/rvm/scripts/src/rvm/bin/rvm
/usr/local/rvm/scripts/rvm
/usr/local/rvm/scripts/scripts/rvm
/usr/local/rvm/scripts/lib/rvm
/usr/local/rvm/scripts/bin/rvm
/usr/local/rvm/lib/rvm
/usr/local/rvm/bin/rvm
[/]# source /usr/local/rvm/scripts/rvm
[/]# 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
......
[/]# rvm use 2.3.3
Required ruby-2.3.3 is not installed.
To install do: 'rvm install "ruby-2.3.3"'
[/]# rvm install ruby-2.3.3
Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly.net/binaries/centos/6/x86_64/ruby-2.3.3.tar.bz2
Checking requirements for centos.
Installing requirements for centos.
Installing required packages: autoconf, automake, bison, libffi-devel, libtool, readline-devel, sqlite-devel, zlib-devel, libyaml-devel, openssl-devel..........................
Requirements installation successful.
ruby-2.3.3 - #configure
ruby-2.3.3 - #download
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21.9M 100 21.9M 0 0 36743 0 0:10:26 0:10:26 --:--:-- 43839
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.3 - #validate archive
ruby-2.3.3 - #extract
ruby-2.3.3 - #validate binary
ruby-2.3.3 - #setup
ruby-2.3.3 - #gemset created /usr/local/rvm/scripts/gems/ruby-2.3.3@global
ruby-2.3.3 - #generating global wrappers........
ruby-2.3.3 - #gemset created /usr/local/rvm/scripts/gems/ruby-2.3.3
ruby-2.3.3 - #generating default wrappers........
[/]# rvm use 2.3.3
Using /usr/local/rvm/scripts/gems/ruby-2.3.3
[/]# rvm use 2.3.3 --default
Using /usr/local/rvm/scripts/gems/ruby-2.3.3
[/]# rvm remove 1.8.7
ruby-1.8.7-head - #already gone
Using /usr/local/rvm/scripts/gems/ruby-2.3.3
====================解决version=>2.2.2的问题==========end==========
继续安装gem
[download]# gem install redis-4.0.0.gem
Successfully installed redis-4.0.0
Parsing documentation for redis-4.0.0
Installing ri documentation for redis-4.0.0
Done installing documentation for redis after 1 seconds
1 gem installed
[loacl]cd /usr/local/
[loacl]mkdir redis-cluster
[redis]# cd /usr/local/redis/
[redis]# cp -r bin ../redis-cluster/redis01
[redis01]# ls
dump.rdb ---快照集群模式-默认方式(另一种模式是AOF模式-"命令行追加模式")
redis-check-aof
redis-cli
redis-sentinel
redis-benchmark
redis-check-rdb
redis.conf
redis-server
[redis01]rm -rf dump.rdb
vi redis.conf 修改端口号
vi redis.conf 开启集群模式 cluster-enabled yes
创建多个集群服务
[redis-cluster]#cp -r redis01/ redis0x
修改集群中对应的端口号
将创建集群的ruby脚本复制到redis-cluster目录下
[src]cd /download/redis-4.0.2/src
[src]cp *.rb /usr/local/redis-cluster/
[redis-cluster]# ls
redis01 redis0n redis-trib.rb
创建集群启动脚本
[redis-cluster]vi startall.sh
cd redis01
./redis-server redis.conf
cd redis02
./redis-server redis.conf
cd redis0n
./redis-server redis.conf
......
[redis-cluster]chmod +x startall.sh
[redis-cluster]./startall.sh
创建集群
[redis-cluster]./redis-trib.rb create --replicas 1 IP:7001 IP::7002 IP::n......
参考如下显示:
>>> Creating cluster
Connecting to node 192.168.25.153:7001: OK
Connecting to node 192.168.25.153:7002: OK
Connecting to node 192.168.25.153:7003: OK
Connecting to node 192.168.25.153:7004: OK
Connecting to node 192.168.25.153:7005: OK
Connecting to node 192.168.25.153:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.25.153:7001
192.168.25.153:7002
192.168.25.153:7003
Adding replica 192.168.25.153:7004 to 192.168.25.153:7001
Adding replica 192.168.25.153:7005 to 192.168.25.153:7002
Adding replica 192.168.25.153:7006 to 192.168.25.153:7003
M: 5a8523db7e12ca600dc82901ced06741b3010076 192.168.25.153:7001
slots:0-5460 (5461 slots) master
M: bf6f0929044db485dea9b565bb51e0c917d20a53 192.168.25.153:7002
slots:5461-10922 (5462 slots) master
M: c5e334dc4a53f655cb98fa3c3bdef8a808a693ca 192.168.25.153:7003
slots:10923-16383 (5461 slots) master
S: 2a61b87b49e5b1c84092918fa2467dd70fec115f 192.168.25.153:7004
replicates 5a8523db7e12ca600dc82901ced06741b3010076
S: 14848b8c813766387cfd77229bd2d1ffd6ac8d65 192.168.25.153:7005
replicates bf6f0929044db485dea9b565bb51e0c917d20a53
S: 3192cbe437fe67bbde9062f59d5a77dabcd0d632 192.168.25.153:7006
replicates c5e334dc4a53f655cb98fa3c3bdef8a808a693ca
确认yes:
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....
>>> Performing Cluster Check (using node 192.168.25.153:7001)
M: 5a8523db7e12ca600dc82901ced06741b3010076 192.168.25.153:7001
slots:0-5460 (5461 slots) master
M: bf6f0929044db485dea9b565bb51e0c917d20a53 192.168.25.153:7002
slots:5461-10922 (5462 slots) master
M: c5e334dc4a53f655cb98fa3c3bdef8a808a693ca 192.168.25.153:7003
slots:10923-16383 (5461 slots) master
M: 2a61b87b49e5b1c84092918fa2467dd70fec115f 192.168.25.153:7004
slots: (0 slots) master
replicates 5a8523db7e12ca600dc82901ced06741b3010076
M: 14848b8c813766387cfd77229bd2d1ffd6ac8d65 192.168.25.153:7005
slots: (0 slots) master
replicates bf6f0929044db485dea9b565bb51e0c917d20a53
M: 3192cbe437fe67bbde9062f59d5a77dabcd0d632 192.168.25.153:7006
slots: (0 slots) master
replicates c5e334dc4a53f655cb98fa3c3bdef8a808a693ca
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
登录redis:
[redis-cluster] redis01/redis-cli -h 192.168.1.100 -p 7002 -c (-c是代表连接集群)
192.168.1.100:7002> set a 100
->Redirected to slot[15499] located at 192.168.1.100:7003 --slot是redis槽的位置
OK
正常关闭redis:
[/]cd /usr/local/redis
[/]bin/redis01/redis-cli -p 7001 shutdown
关闭集群脚本
[redis-cluster] vi shutdown.sh
redis01/redis-cli -p 端口号7001 shutdown
redis01/redis-cli -p 端口号7002 shutdown
redis01/redis-cli -p 端口号7003 shutdown
...
chmod +x shutdown.sh
