Centos7 下关于redis-3.2.11的集群部署
1.上传redis源文件
mkdir -p /data/software
cd /data/software
rz
2.解压到/usr/local/目录下
tar -zxvf redis-3.2.11.tar.gz -C /usr/local/
3.在安装目录下执行make && make install
cd /usr/local/redis-3.2.11
make && make install
如果报错,说明未安装gcc和tcl
yum install gcc
yum install tcl
然后再
make && make install
如果报:zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
则执行:make MALLOC=libc
然后再:make && make install
建议执行:make test,执行make test
4.复制redis-trib.rb 到/usr/local/bin/目录下(后面可以直接使用命令来设置redis主从)
cd src
cp redis-trib.rb /usr/local/bin/
5.在安装目录下创建redis-cluster文件夹
cd /usr/local/redis-3.2.11/
mkdir redis_cluster
6.在redis-cluster文件夹下新建三个文件夹命名分别为6379、6380
cd redis_cluster
mkdir 6379 6380
7.拷贝redis.conf配置文件到两个目录下
cp /usr/local/redis-3.2.11/redis.conf 6379/
cp /usr/local/redis-3.2.11/redis.conf 6380/
8.分别修改这两个配置文件
##vim /usr/local/redis-3.2.11/redis-cluster/6380/redis.conf
修改如下内容:
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip
port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
cluster-enabled yes
cluster-config-file nodes_6380.conf
cluster-node-timeout 15000
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
9.在另外两台服务器上同样的方式部署端口为6379、6380的redis服务
10.启动各个节点
cd /usr/local/redis-3.2.11/src/
redis-server /usr/local/redis-3.2.11/redis_cluster/6379/redis.conf
redis-cli -h -p shutdown(关闭)
11.创建集群(设置主从)
第四步已将它复制到 /usr/local/bin 目录中
redis-trib.rb create --replicas 1 10.7.68.113:6379 10.7.68.114:6379 10.7.68.115:6379 10.7.68.113:6380 10.7.68.114:6380 10.7.68.115:6380
如果报错,说明没有安装ruby
安装ruby命令如下:
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
执行gem install redis时可能会报错:提示ruby版本过低,因为CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby
yum install curl
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
安装rvm后,可能会提示需要添加用户
export PATH=/usr/local/rvm/bin:$PATH
source /etc/profile
查看rvm库中已知的ruby版本:
rvm list known
安装一个ruby版本:
rvm install 2.4.1
如果发现有高版本,则强制更新为低版本
yum distro-sync
使用一个ruby版本:
rvm use 2.4.1
设置默认版本:
rvm use 2.4.1 --default
查看ruby版本:
ruby --version
安装redis:
gem install redis
再次执行创建集群命令:
redis-trib.rb create --replicas 1 10.7.68.113:6379 10.7.68.114:6379 10.7.68.115:6379 10.7.68.113:6380 10.7.68.114:6380 10.7.68.115:6380
先创建redis主的集群。
redis-trib.rb create 10.7.68.116:6379 10.7.68.117:6379 10.7.68.118:6379
一个一个创建redis主集群的从库,多台主机的时候使用这个创建
redis-trib.rb add-node --slave 10.7.68.116:6380 10.7.68.116:6379
redis-trib.rb add-node --slave 10.7.68.117:6380 10.7.68.117:6379
redis-trib.rb add-node --slave 10.7.68.118:6380 10.7.68.118:6379
集群重启:
shutdown save
删除节点:
redis-trib.rb del-node 172.16.2.77:6380 'f21c42c1c68b3d0fa4c9ce1ebe90c2c7a42279a5'
添加主节点:
redis-trib.rb add-node 172.16.2.78:6379 172.16.2.77:6379
添加从节点:
redis-trib.rb add-node --slave --master-id 22cc84312d645d1bbc7fc0a8172bebdc60693030 172.16.2.78:6380 172.16.2.77:6379
重新分配槽:
redis-trib.rb reshard 172.16.2.78:6380