概述: 对于redis的使用,可以说在当下互联网架构中必备的应用中间件之一,其工作模式可以运行在单节点(建议测试环境),双节点(主从环境),多节点(哨兵模式)以及多节点(集群模式),对于redis高可用架构来说,我们首选肯定是集群模式环境了,其最基本节点数就是三主三从,下面我们来看看,如何快速在centos7上进行redis3.0版本三主三从的集群模式构建。
首先,我们需要了解,在redis4.0之前的集群创建工具还是需要ruby支持,并且使用自带集群创建工具为:redis-trib.rb ,而redis4.0之后的版本会提示你使用自带工具:redis-cli 进行集群的创建,那么我们在centos7 下就需要先安装ruby环境。
1)、基础环境要求【三台都执行】:
#yum install ruby vim wget make gcc -y
#ruby -v
#gem install redis //【此处报错,意思都明白吧,接下来继续】
Fetching: redis-4.2.5.gem (100%)
ERROR: Error installing redis:
redis requires Ruby version >= 2.3.0.
#gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
#curl -sSL https://get.rvm.io | bash -s stable
#source /usr/local/rvm/scripts/rvm
#rvm list known
#rvm install 2.5.8
#rvm use 2.5.8
#rvm use 2.5.8 --default
#gem install redis
2)、redis环境要求【三台都执行】:
#mkdir -p /usr/redis3/bin /usr/redis3csdb
#cd /opt/
#wget https://download.redis.io/releases/redis-3.2.13.tar.gz
#tar -zxvf redis-3.2.13.tar.gz
#cd redis-3.2.13
#make
#make install PREFIX=/usr/redis3
#cp ./src/redis-* /usr/redis3/bin/
#mkdir -p /usr/redis3csdb/6379/ /usr/redis3csdb/6380/
#cd /usr/redis3csdb/
3)、集群相关配置修改【三台都执行】:
#mkdir -p 6379/data 6380/data
#cp /opt/redis-3.2.13/redis.conf ./6379/data/
#cp /opt/redis-3.2.13/redis.conf ./6380/data/
#vim 6379/data/redis.conf 【按需要配置参数】
#vim 6380/data/redis.conf 【按需要配置参数】
要注意配置文件路径、配置的数据存放、日志存放路径,其次,下面是redis.conf配置文件中集群必须参数项,文件名和超时时间可根据具体情况而定:
cluster-enabled yes
cluster-config-file "nodes-6379.conf"
cluster-node-timeout 15000
4)、系统环境要求【三台都执行】:
#sysctl vm.overcommit_memory=1
#echo never > /sys/kernel/mm/transparent_hugepage/enabled
#echo 1024 > /proc/sys/net/core/somaxconn
#sysctl -p
5)、启动机器的2个实例【三台都执行】:
启动节点M:
#/usr/redis3/bin/redis-server /usr/redis3csdb/6379/data/redis.conf
启动节点S:
#/usr/redis3/bin/redis-server /usr/redis3csdb/6380/data/redis.conf
6)、创建(加入)集群【一台都执行】:
方式一、创建主从集群:
#/usr/redis3/bin/redis-trib.rb create --replicas 1 10.11.99.11:6379 10.11.99.11:6380 10.11.99.12:6379 10.11.99.12:6380 10.11.99.13:6379 10.11.99.13:6380
注意:如果上面创建集群分配主从时分配均匀(每台机器的主从交叉配对),即一条命令即可完成。否则手动执行下面的命令 加入从节点。
方式二、先创建主,从加入集群:
只创建主库【分配槽可用】:
#/usr/redis3/bin/redis-trib.rb create 10.11.99.11:6379 10.11.99.12:6379 10.11.99.13:6379 // 记录下master-id
加入主库【分担槽】// 执行3次,每次使用不同节点的主从交叉
#/usr/redis3/bin/redis-trib.rb add-node --slave --master-id 42a54439f050638960aa8ec20883c1a9d8e8f020 10.11.99.13:6380 10.11.99.11:6379
7)、接下来就可以检查和查看集群了:
#redis-trib.rb check 10.11.99.11:6379
#redis-trib.rb info 10.11.99.11:6379
8)、centos7上redis优雅启动与关闭【三台都执行】:
#vim /lib/systemd/system/redis79.service
####6379####
[Unit]
Description=redis-server6379
After=network.target
[Service]
Type=forking
ExecStart=/usr/redis3/bin/redis-server /usr/redis3csdb/6379/data/redis.conf
ExecStop=/usr/redis3/bin//redis-cli -h 127.0.0.1 -p 6379 shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#vim /lib/systemd/system/redis80.service
####6380####
[Unit]
Description=redis-server6380
After=network.target
[Service]
Type=forking
ExecStart=/usr/redis3/bin/redis-server /usr/redis3csdb/6380/data/redis.conf
ExecStop=/usr/local/redis6/bin/redis-cli -h 127.0.0.1 -p 6380 shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
#systemctl enable redis79 && systemctl enable redis80
#systemctl start redis79 && systemctl start redis80
注意点:由于每个节点跑了2个实力,所以要注意端口与目录区别。
内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!
转载请注明出处:https://blog.ff56.cn/shujuku/1657868223.html