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