centos 7 安装 redis 的脚本文件
新建 Bash 脚本文件
vim install_redis.sh
复制脚本文件
点击查看代码
#!/bin/bash
# 安装版本
redis_version="6.2.7"
# 默认安装目录,可以通过第一个参数指定
redis_installDir="/opt/redis"
# Redis密码和端口,可以通过第二个和第三个参数指定
# 默认密码为"yourpassword",默认端口为6379
redis_password="****"
redis_port="6434"
# 检查是否提供了安装目录参数,如果有则使用提供的目录
if [ -n "$1" ]; then
redis_installDir="$1"
fi
# 检查是否提供了密码和端口参数,如果有则使用提供的值
if [ -n "$2" ]; then
redis_password="$2"
fi
if [ -n "$3" ]; then
redis_port="$3"
fi
install_redis() {
local version=$1
local installDir=$2
local password=$3
local port=$4
local redisconf_file=$installDir/redis-$version/redis.conf
# 安装工具包
yum -y install epel-release gcc make tcl
# 下载地址
local downloadUrl="http://download.redis.io/releases/redis-$version.tar.gz"
if [ -z "$(command -v wget)" ]; then
yum -y install wget
if [ $? -eq 0 ]; then
echo "wget安装完成"
else
echo "wget安装失败,请检查"
exit 1
fi
fi
if [ ! -d "${installDir}" ]; then
mkdir -p "${installDir}"
if [ $? -eq 0 ]; then
echo "安装目录${installDir}已创建"
else
echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
exit 1
fi
fi
if [ ! -f "/tmp/redis-$version.tar.gz" ] ; then
wget "$downloadUrl" -P /tmp
if [ $? -eq 0 ]; then
echo "redis-$version.tar.gz下载成功"
else
echo "redis-$version.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"
echo "下载地址:$downloadUrl"
exit 1
fi
else
echo "/tmp/redis-$version.tar.gz文件已存在"
fi
if [ -d "${installDir}/redis-$version" ]; then
echo "${installDir}/redis-$version 已存在,正在删除..."
rm -rf "${installDir}/redis-$version"
fi
tar -zxvf "/tmp/redis-$version.tar.gz" -C "${installDir}"
if [ $? -eq 0 ]; then
echo "redis-$version.tar.gz解压成功"
else
echo "redis-$version.tar.gz解压失败,请查看异常信息后重试"
exit 1
fi
# 编译和安装
cd ${installDir}/redis-$version
make && make install
# 修改Redis配置文件
sed -i "s|daemonize no|daemonize yes|" "$redisconf_file"
sed -i "s|bind 127.0.0.1 -::1|bind 127.0.0.1 -::1\nbind 0.0.0.0|" "$redisconf_file"
sed -i "s|# requirepass foobared|requirepass $password|" "$redisconf_file"
sed -i "s|port 6379|port $port|" "$redisconf_file"
echo "redis 单机版下载、安装、配置完成"
echo "redis安装目录:${installDir}/redis-$version"
echo "单机版 进入 redis 交互界面命令:redis-cli -h $(ip addr | grep 'inet ' | awk '{print$2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+') -p $port"
}
install_redis "$redis_version" "$redis_installDir" "$redis_password" "$redis_port"
exit 0
进入 instll_redis.sh 脚本配置
- 设置 redis 版本号
- 设置 redis 安装目录(建议默认)
- 设置 redis 连接密码
- 设置 redis 连接端口
执行命令
1、./instll_redis.sh
2、./instll_redis.sh 安装目录 密码 端口
将 redis 设置为服务
编辑 redis.service
vi /etc/systemd/system/redis.service
复制下面的脚本,并修改 ExecStart 属性
点击查看代码
[Unit]
# 描述内容
Description=Redis
#在哪些服务启动之后启动
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
#PIDFile和redis.conf配置中一致
PIDFile=/var/run/redis_6379.pid
ExecStart=/opt/redis/redis-6.2.7/src/redis-server /opt/redis/redis-6.2.7/redis.conf
#重新加载和停止服务的命令
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
#系统以默认多用户方式启动时,此服务自动运行。
[Install]
#Alias:服务别名
WantedBy=multi-user.target
刷新服务
systemctl daemon-reload
执行命令
- systemctl start redis.service #启动redis服务
- systemctl stop redis.service #停止redis服务
- systemctl restart redis.service #重新启动服务
- systemctl status redis.service #查看服务当前状态
- systemctl enable redis.service #设置开机自启动
- systemctl disable redis.service #停止开机自启动