Redis单机部署
标签(空格分隔): Redis
组件安装
# 给CentOS7安装remi源sudo yum --assumeyes install http://rpms.remirepo.net/enterprise/remi-release-7.rpm# 确认包信息yum --enablerepo=remi info redis# 安装redissudo yum --enablerepo=remi --assumeyes install redis
单机部署
部署服务
# 准备工作目录
rm --recursive --force ~/redis-singleton
mkdir --parents ~/redis-singleton
# 复制样板文件然后配置好
sudo cp /etc/redis.conf ~/redis-singleton/
sudo cp /usr/lib/systemd/system/redis.service ~/redis-singleton/
sudo chown --recursive ${USER}:${USER} ~/redis-singleton
# 端口逐个配置和启动
for port in 6379;
do
# 禁用后停止服务
if [ -f /usr/lib/systemd/system/redis-singleton-$port.service ];
then
sudo systemctl disable redis-singleton-$port.service;
sudo systemctl stop redis-singleton-$port.service;
sudo rm --force /usr/lib/systemd/system/redis-singleton-$port.service;
fi;
# 清理配置文件
if [ -f /etc/redis-singleton-$port.conf ]; then sudo rm --force /etc/redis-singleton-$port.conf; fi;
# 从模板创建后配置 redis
cp ~/redis-singleton/redis.conf ~/redis-singleton/redis-singleton-$port.conf;
# 注意修改成对应主机的ip
sed --in-place "s|^bind .*$|bind 0.0.0.0|g" ~/redis-singleton/redis-singleton-$port.conf;
sed --in-place "s|^port .*$|port $port|g" ~/redis-singleton/redis-singleton-$port.conf;
sed --in-place "s|^pidfile .*$|pidfile /var/run/redis-singleton-$port.pid|g" ~/redis-singleton/redis-singleton-$port.conf;
sed --in-place "s|^logfile .*$|logfile /var/log/redis/redis-singleton-$port.log|g" ~/redis-singleton/redis-singleton-$port.conf;
sed --in-place "s|^dir .*$|dir /var/lib/redis-singleton-$port|g" ~/redis-singleton/redis-singleton-$port.conf;
sed --in-place "s|^appendonly .*$|appendonly yes|g" ~/redis-singleton/redis-singleton-$port.conf;
# 从模板创建后配置 service
cp ~/redis-singleton/redis.service ~/redis-singleton/redis-singleton-$port.service;
sed --in-place --regexp-extended "s|^(ExecStart=.*redis-server +)[^ ]+( +.*)$|\1/etc/redis-singleton-$port.conf\2|g" ~/redis-singleton/redis-singleton-$port.service;
sed --in-place --regexp-extended "s|^(ExecStop=/usr/libexec/redis-shutdown).*$|\1 redis-singleton-$port|g" ~/redis-singleton/redis-singleton-$port.service;
sed --in-place "s|^RuntimeDirectory=.*$|RuntimeDirectory=redis-singleton-$port|g" ~/redis-singleton/redis-singleton-$port.service;
# 放置配置文件
sudo cp ~/redis-singleton/redis-singleton-$port.conf /etc/
sudo chown redis:root /etc/redis-singleton-$port.conf
sudo cp ~/redis-singleton/redis-singleton-$port.service /usr/lib/systemd/system/
# 确保数据目录已创建且权限正确
sudo mkdir --parents /var/lib/redis-singleton-$port
sudo chown redis:redis /var/lib/redis-singleton-$port
# 启用后启动服务
sudo systemctl enable redis-singleton-$port.service;
sudo systemctl start redis-singleton-$port.service;
# 查看服务状态
sudo systemctl status redis-singleton-$port.service;
done
连接服务
redis-cli -c -h 127.0.0.1 -p 6379
销毁服务
# 端口逐个停止和清理
for port in 6379;
do
# 禁用后停止服务
if [ -f /usr/lib/systemd/system/redis-singleton-$port.service ];
then
sudo systemctl disable redis-singleton-$port.service;
sudo systemctl stop redis-singleton-$port.service;
sudo rm --force /usr/lib/systemd/system/redis-singleton-$port.service;
fi;
# 清理配置文件
if [ -f /etc/redis-singleton-$port.conf ]; then sudo rm --force /etc/redis-singleton-$port.conf; fi;
# 清理所有数据
if sudo [ -f /var/log/redis/redis-singleton-$port.log ]; then sudo rm --force /var/log/redis/redis-singleton-$port.log; fi;
if [ -d /var/lib/redis-singleton-$port ]; then sudo rm --recursive --force /var/lib/redis-singleton-$port; fi;
done
