A2-1-Linux下 Redis 单机集群安装(一)
概述:本次集群安装主要分析出两种安装方式对于集群更新添加节点方便,将从单机上的“创建新实例”、“启动新实例”两个方面对两种方式作综合评估。
一、方式一:yum安装下redis操作-创建新实例&启动新实例
1、新建新的配置环境
mkdir /etc/redis/
mv /etc/redis.conf /etc/redis/
2、备份原有配置文件作为基础模板 生成新的配置文件
mv redis.conf redis.conf.bak
cp redis.conf.bak redis-20000.conf
cp redis.conf.bak redis-20002.conf
3、修改配置文件
sed -i -e "s\port 6379\port 20000\g" /etc/redis/redis-20000.conf
sed -i -e "s\port 6379\port 20000\g" /etc/redis/redis-20002.conf
sed -i -e "s\/etc/redis.conf\/etc/redis/*.conf\g" /usr/lib/systemd/system/redis.service
sed -i -e 's\CONFIG_FILE="/etc/$SERVICE_NAME.conf"\CONFIG_FILE="/etc/redis/$SERVICE_NAME.conf"\g' /usr/libexec/redis-shutdown
4、启动
很明显,貌似不支持正则匹配配置文件。那么system启动,要么配置多个实例的system启动文件,要么配置新的手动启动文件。这里都搞搞。
5、配置两个实例的system启动文件
cp /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis-20000.service
cp /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis-20002.service
sed -i -e "s\redis*.conf\redis-20000.conf\g" /usr/lib/systemd/system/redis-20000.service
sed -i -e "s\redis*.conf\redis-20002.conf\g" /usr/lib/systemd/system/redis-20002.service
6、更新服务并启动
systemctl daemon-reload
systemctl start redis-20000
systemctl start redis-20002
7、多实例一起启动
先将原配置文件重命名,以免system服务报错
mv /etc/redis/redis.conf.bak /etc/redis/redis.conf
systemctl daemon-reload
启停多实例
8、配置手动启动文件
创建文件储存位置
mkdir shell
编写两个服务启动文件
echo '#!/bin/bash' > /etc/redis/shell/redis-20000.sh
echo ' ' >> /etc/redis/shell/redis-20000.sh
echo '/usr/bin/redis-server /etc/redis/redis-20000.conf' >> /etc/redis/shell/redis-20000.sh
echo '#!/bin/bash' > /etc/redis/shell/redis-20002.sh
echo ' ' >> /etc/redis/shell/redis-20002.sh
echo '/usr/bin/redis-server /etc/redis/redis-20002.conf' >> /etc/redis/shell/redis-20002.sh
chmod +x /etc/redis/shell/*
9、启动
当然,这里发现每次执行/etc/redis/shell/* 时,总是只启动了一个20000实例,具体原因不明。但也可以看出,手动配置的启动方式,确实比system启动方便得多。
二、方式二:编译安装下redis操作-创建新实例&启动新实例
上述讲了第一种安装方式下的单机 “创建新实例”、“启动新实例”。现在来看第二种安装方式下的单机 “创建新实例”、“启动新实例”。
1、创建新配置文件
首先创建新的配置文件夹,再将配置文件移到配置文件夹下,复制两份作为新的配置文件
mv redis.conf conf.d/
cp redis.conf redis-40001.conf
cp redis.conf redis-40002.conf
2、修改配置文件
与之前的一样,只需要将端口6379改为对应端口号即可
sed -i -e "s/port 6379/port 40001/g" /usr/local/redis/conf.d/redis-40001.conf
sed -i -e "s/port 6379/port 40002/g" /usr/local/redis/conf.d/redis-40002.conf
3、停用之前启动的redis服务
4、编写启动文件
echo '#!/bin/bash' > /usr/local/redis/shell/redis-40001.sh
echo ' ' >> /usr/local/redis/shell/redis-40001.sh
echo '/usr/local/redis/bin/redis-server /usr/local/redis/conf.d/redis-40001.conf' >> /usr/local/redis/shell/redis-40001.sh
echo '#!/bin/bash' > /usr/local/redis/shell/redis-40002.sh
echo ' ' >> /usr/local/redis/shell/redis-40002.sh
echo '/usr/local/redis/bin/redis-server /usr/local/redis/conf.d/redis-40002.conf' >> /usr/local/redis/shell/redis-40002.sh
chmod +x /usr/local/redis/shell/*
5、启动
三、总结
由上述两种安装方式来看,编译安装的redis确实可控性更高,至少不会与system服务冲突。而且所有的配置文件、服务命令都在指定的安装目录下,省了很多事。故而在之后的集群建设中,将使用编译安装的方式作为集群搭建redis的唯一方式。