CentOS下部署Redis集群
一、部署环境
服务器三台:
10.10.15.41(配置运行两个实例,端口:6379,6380)
10.10.15.42(配置运行两个实例,端口:6381,6382)
10.10.15.43(配置运行两个实例,端口:6383,6384)
二、目标
配置10.10.15.41:6379,10.10.15.42:6381,10.10.15.43:6383为Master节点,
10.10.15.42:6382,10.10.15.43:6384,10.10.15.41:6380为相应Salve节点,即10.10.15.42:6382为10.10.15.41:6379的从节点,10.10.15.43:6384为10.10.15.42:6381的从节点,10.10.15.41:6380为10.10.15.43:6383的从节点。
三、配置步骤(其中一台,另外2台同样)
1、安装gcc yum install gcc
2、在/usr/local目录下创建 soft 目录,用来存放要安装的软件
3、下载redis-5.0.4安装包,并将安装包拷贝到 soft 目录
4、终端进入soft目录,解压安装包 tar -zxvf redis-5.0.4.tar.gz
5、进入解压好的redis-5.0.4目录 cd redis-5.0.4
6、进行编译 make
7、进入 redis-5.0.4/src目录下,验证安装 make install
8、在与redis-5.0.4同级目录下创建三个目录
/redis/bin【将/usr/local/bin下与redis相关的全部文件拷贝至该目录下】
/redis-cluster/6379【将redis-5.0.4目录下的redis.conf文件拷贝至该目录】
/redis-cluster/6380【将redis-5.0.4目录下的redis.conf文件拷贝至该目录】
/redis-cluster-data/6379【用于存放6379实例的本地化数据】
/redis-cluster-data/6380【用于存放6380实例的本地化数据】
9、集群配置,修改配置文件
daemonize yes 【配置redis为后台运行】
port 6379 【修改为相应实例的端口号】
bind 10.10.15.41
dir /usr/local/soft/redis-cluster/6379 【制定redis数据文件存放目录】
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
appendonly yes
10、运行实例
进入新建的/redis/bin目录,运行命令
redis-server /usr/local/soft/redis-cluster/6379/redis.conf
redis-server /usr/local/soft/redis-cluster/6380/redis.conf
11、安装ruby
yum install ruby
yum install rubygems
12、6个实例节点创建并启动后台,创建redis集群
redis-cli --cluster create 10.10.15.41:6379 10.10.15.42:6381 10.10.15.43:6383 10.10.15.42:6382 10.10.15.43:6384 10.10.15.41:6380 --cluster-replicas 1
说明:Master节点为前三个,写在前面;Slave节点为相应的后三个。参数cluster-replicas的值是主从节点的比例。此处3主3从为1。若3主6从则为0.5
四、配置redis开机启动
1、在/etc/systemd/system/目录下创建redis-server-6379.service文件
Cd 到/etc/systemd/system/ 【touch redis-server-6379.service】
2、将以下内容粘贴到该文件内
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/soft/redis/bin/redis-server /usr/local/soft/redis-cluster/6379/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
3、执行以下命令
systemctl daemon-reload
systemctl start redis-server-6379.service
systemctl enable redis-server-6379.service