这里写目录标题
- 背景
- 步骤
- 总结
背景
现在有要求,将所有安装步骤可复用化 。sh脚本即可完成如上要求,减少人安装带来的不确定性因素。
需要安装包的可以加我微信。
步骤
在/root 目录下创建一个文件我们给他命名为 autoRedis.sh
vi autoRedis.sh
然后摁i进入编辑状态,写入如下文本
#!/bin/bash
# 检查是否是root用户
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script, please use root to install"
exit 1
else
echo "Script is running as root..."
fi
install_redis(){
echo "Starting the installation of Redis..."
# 单节点建立目录
echo "Creating directories..."
cd /usr/local
mkdir -p tools
cd tools
mkdir -p redis-build
cd /usr/local/tools/redis-build/
echo "Moving Redis tarball to the build directory..."
mv /root/redis-4.0.11.tar.gz /usr/local/tools/redis-build/
echo "Extracting Redis tarball..."
tar -zxvf redis-4.0.11.tar.gz
# 编译安装redis
echo "Compiling Redis..."
cd redis-4.0.11
make MALLOC=libc
cd src
echo "Installing Redis..."
make install PREFIX=/usr/local/tools/redis/
# 创建redis节点目录
echo "Creating Redis node directories..."
cd /usr/local/tools/redis
mkdir -p node/{conf,db,log}
# 复制配置文件
echo "Copying Redis configuration file..."
cd node/conf
cp /usr/local/tools/redis-build/redis-4.0.11/redis.conf ./
# 修改配置文件
echo "Configuring Redis..."
sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/g' /usr/local/tools/redis/node/conf/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' /usr/local/tools/redis/node/conf/redis.conf
sed -i 's/daemonize no/daemonize yes/g' /usr/local/tools/redis/node/conf/redis.conf
sed -i 's|logfile ""|logfile /usr/local/tools/redis/node/log/redis.log|g' /usr/local/tools/redis/node/conf/redis.conf
sed -i 's|dir ./|dir /usr/local/tools/redis/node/db|g' /usr/local/tools/redis/node/conf/redis.conf
sed -i 's|pidfile /var/run/redis_6379.pid|pidfile /usr/local/tools/redis/node/redis.pid|g' /usr/local/tools/redis/node/conf/redis.conf
# 启动redis服务
echo "Starting Redis server..."
/usr/local/tools/redis/bin/redis-server /usr/local/tools/redis/node/conf/redis.conf
echo "Redis server started successfully."
}
# 调用函数部署redis
install_redis
然后保存退出
提升文件权限 并且执行脚本
chmod 777 autoRedis.sh
./autoRedis.sh
如果你是云服务器请记得开端口,然后使用medis连接
总结
任何东西都可以按照面向对象的思路完成,增加可复用 扩充 维护性。