操作系统 :Centos 7.4
ruby版本 :ruby-2.6.5 -- CentOS7 yum库中ruby的版本支持到 2.0.0,但是gem安装redis需要最低是2.3.0
redis版本 :redis-3.2.9
0、安装 gcc,make
# yum install gcc-c++ make wget
1、下载、编译安装ruby
您可以在这里:https://www.ruby-lang.org/zh_cn/downloads/下载最新的 Ruby 发行版。
目前最新的稳定版本是 2.7.0,但建议使用2.6.5
1)下载:
# wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.gz ##此版本在Centos7.4上报openssl错 cannot load such file -- openssl (LoadError)
# wget https://cache.ruby-lang.org/pub/ruby/ruby-2.6-stable.tar.gz ## 此版本在Centos7.4上正常安装
# wget https://rubygems.org/downloads/redis-3.2.2.gem ## 本次使用这个
# wget https://rubygems.org/downloads/redis-4.1.3.gem
2)解压,编译安装:
# tar zxvf ruby-2.7.0.tar.gz
# cd ruby-2.7.0
##### ./configure --prefix=/usr/local/ruby --with-openssl-dir=/usr/local/openssl --with-zlib-dir=/usr/local/zlib
# ./configure --prefix=/usr/local/ruby ## --默认情况下,Ruby 安装到 /usr/local 目录
# make
# make install
3)添加ruby到环境变量
# vi /etc/profile ## 在文件的最末尾加上下列代码
cat /etc/profile
echo "export RUBY_HOME=/usr/local/ruby" >> /etc/profile
echo "export PATH=\$PATH:\$RUBY_HOME/bin" >> /etc/profile
## 生效:
source /etc/profile
env|grep ruby
2、gem安装redis -- 直接下载redis-3.2.2.gem,然后安装
# wget https://rubygems.org/downloads/redis-3.2.2.gem
# gem install /root/redis-3.2.2.gem
[root@server01 ~]# gem install redis-3.2.2.gem
Successfully installed redis-3.2.2
Parsing documentation for redis-3.2.2
Installing ri documentation for redis-3.2.2
Done installing documentation for redis after 0 seconds
1 gem installed
3、下载、安装、配置redis
1)下载:
http://download.redis.io/releases/
# wget http://download.redis.io/releases/redis-3.2.9.tar.gz
2)解压: --解压到当前目录
tar -zxvf redis-3.2.9.tar.gz
cd redis-3.2.9/src
3)编译安装到 /opt/redis-3.2.9 ,会在这个目录下生成 bin 目录,里面就会有编译好的运行文件
cd redis-3.2.9/src
make install PREFIX=/opt/redis-3.2.9
编译安装完成后,测试:
cd /opt/bosssoft/redis-3.2.9/src
make test
4)配置文件修改 -- 在解压目录里
cp ~/redis-3.2.9/redis.conf /opt/redis-3.2.9/bin
vi /opt/redis-3.2.9/bin/redis.conf
# 设置密码:
# requirepass foobared ## redis-trib.rb 创建集群不支持密码。不要设置
# 设置参数 :
protected-mode no ## For redis 集群,需要设置为no
daemonize yes ## 从 no 改为yes ,以守护进程启动
# bind 127.0.0.1 ## 注释掉
port 7701 ## 默认为:6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
5)设置环境变量:
# vi /etc/profile 加入:
cat /etc/profile
echo "export REDIS_HOME=/opt/redis-3.2.9" >> /etc/profile
echo "export PATH=\$REDIS_HOME/bin:\$PATH" >> /etc/profile
## 生效:
source /etc/profile
env | grep redis-
4、配置redis集群环境
1)在redis目录下新建cluster文件夹。在cluster目录下新建redis-7701 ~ redis-7706 六个目录
#
mkdir -p /opt/redis-3.2.9/cluster
cd /opt/redis-3.2.9/cluster
mkdir redis-7701 redis-7702 redis-7703 redis-7704 redis-7705 redis-7706
2)将前面步骤中安装好的/opt/redis-3.2.9/bin目录,与修改好的redis.conf文件拷贝到这六个目录下。
#
cd /opt/redis-3.2.9/cluster
cp -rp /opt/redis-3.2.9/bin/* redis-7701
cp -rp /opt/redis-3.2.9/bin/* redis-7702
cp -rp /opt/redis-3.2.9/bin/* redis-7703
cp -rp /opt/redis-3.2.9/bin/* redis-7704
cp -rp /opt/redis-3.2.9/bin/* redis-7705
cp -rp /opt/redis-3.2.9/bin/* redis-7706
3)修改redis.conf文件
将文件中的port修改成与文件夹名字相同的号码
grep "port 770" /opt/redis-3.2.9/cluster/*/redis.conf
sed -i "s/port 7701/port 7702/" /opt/redis-3.2.9/cluster/redis-7702/redis.conf
sed -i "s/port 7701/port 7703/" /opt/redis-3.2.9/cluster/redis-7703/redis.conf
sed -i "s/port 7701/port 7704/" /opt/redis-3.2.9/cluster/redis-7704/redis.conf
sed -i "s/port 7701/port 7705/" /opt/redis-3.2.9/cluster/redis-7705/redis.conf
sed -i "s/port 7701/port 7706/" /opt/redis-3.2.9/cluster/redis-7706/redis.conf
grep "port 770" /opt/redis-3.2.9/cluster/*/redis.conf
4)创建启动、停止脚本
创建redis集群启动脚本 :
# vi /opt/redis-3.2.9/cluster/start_all.sh # 加入:
cd /opt/redis-3.2.9/cluster/redis-7701
./redis-server redis.conf
cd ..
cd redis-7702
./redis-server redis.conf
cd ..
cd redis-7703
./redis-server redis.conf
cd ..
cd redis-7704
./redis-server redis.conf
cd ..
cd redis-7705
./redis-server redis.conf
cd ..
cd redis-7706
./redis-server redis.conf
cd ..
ps -ef |grep redis-server
创建关闭集群的脚本:
# vi /opt/redis-3.2.9/cluster/shutdown_all.sh # 加入:
/opt/redis-3.2.9/cluster/redis-7701/redis-cli -p 7701 shutdown
/opt/redis-3.2.9/cluster/redis-7702/redis-cli -p 7702 shutdown
/opt/redis-3.2.9/cluster/redis-7703/redis-cli -p 7703 shutdown
/opt/redis-3.2.9/cluster/redis-7704/redis-cli -p 7704 shutdown
/opt/redis-3.2.9/cluster/redis-7705/redis-cli -p 7705 shutdown
/opt/redis-3.2.9/cluster/redis-7706/redis-cli -p 7706 shutdown
## 加权限:
chmod +x /opt/redis-3.2.9/cluster/start_all.sh
chmod +x /opt/redis-3.2.9/cluster/shutdown_all.sh
ps -ef |grep redis-server
## 启动:
/opt/redis-3.2.9/cluster/start_all.sh
## 检查:
# ps -ef |grep redis-server
root 14664 1 0 21:05 ? 00:00:00 ./redis-server *:7701 [cluster]
root 14676 1 0 21:07 ? 00:00:00 ./redis-server *:7702 [cluster]
root 14678 1 0 21:07 ? 00:00:00 ./redis-server *:7703 [cluster]
root 14680 1 0 21:07 ? 00:00:00 ./redis-server *:7704 [cluster]
root 14684 1 0 21:07 ? 00:00:00 ./redis-server *:7705 [cluster]
root 14686 1 0 21:07 ? 00:00:00 ./redis-server *:7706 [cluster]
root 14697 1322 0 21:07 pts/0 00:00:00 grep --color=auto red
5、创建redis集群
# cd /root/redis-3.2.9/src
# /root/redis-3.2.9/src/redis-trib.rb create --replicas 1 192.168.56.131:7701 192.168.56.131:7702 192.168.56.131:7703 192.168.56.131:7704 192.168.56.131:7705 192.168.56.131:7706
详细输出请查看:redis-trib.rb create --replicas 1
输入命令查看集群节点状态 -c 表示登陆集群
# redis-cli -c -p 7701
127.0.0.1:7700> cluster info
127.0.0.1:7700> cluster nodes
[root@server01 ~]# redis-cli -c -p 7701
127.0.0.1:7701> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:2055
cluster_stats_messages_received:2055
127.0.0.1:7701>
127.0.0.1:7701> cluster nodes
09127b80aaba93d609750c720642e474bfef0fd3 192.168.56.131:7704 slave 254bebedbae644646c241fb46910425afbcb6513 0 1577627928163 4 connected
254bebedbae644646c241fb46910425afbcb6513 192.168.56.131:7701 myself,master - 0 0 1 connected 0-5460
1b05deb4cc186ddab10e175d04ab99a9b03dde3b 192.168.56.131:7705 slave 84d57adcd1f8cb4ac6131dfc73e0714befc58a8a 0 1577627929679 5 connected
6efb72115adea7a7fd73288b96065eab0881cd6b 192.168.56.131:7703 master - 0 1577627928530 3 connected 10923-16383
84d57adcd1f8cb4ac6131dfc73e0714befc58a8a 192.168.56.131:7702 master - 0 1577627930601 2 connected 5461-10922
e3474cf447ae5e4e0e051219d1facd6011a153e3 192.168.56.131:7706 slave 6efb72115adea7a7fd73288b96065eab0881cd6b 0 1577627929578 6 connected
127.0.0.1:7701>
至此,集群安装完成,这是在一个台机器上搭建的,
同理在多台服务器上也是如此,换一下ip即可