CentOS一键安装Redis 6.0.10

本文介绍如何从源码安装 Redis 6.0.10 版本,并提供了详细的步骤说明,包括下载、解压、编译安装、配置等过程。此外还介绍了如何开启或关闭远程访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis-6.0.10.sh

#!/bin/sh
# 从源码安装redis
# 解压后包名
App=redis-6.0.10
# 安装包名称
AppTar=redis-6.0.10.tar.gz
# 安装目录
AppInstallBase=/opt
# 安装目录下包名
AppName=redis
# 脚本目录
ScriptDir=$AppInstallBase/script
# 安装包保存目录
AppTarDir=$AppInstallBase/soft
# build目录
AppBuildBase=$AppInstallBase/soft/build

# 判断是否已经下载了tar包
fdownload(){
	echo "第一步"
	echo "--------------开始下载$AppTar --------------"
	# 先判断是否已下载
	if [[ ! -f $AppTarDir/$AppTar ]]; then
		echo "$AppTar 不存在"
		echo "Start download $AppTar"
		# 判断soft目录是否存在
		if [[ ! -d $AppTarDir ]]; then
			echo "$AppTarDir 不存在"
			mkdir -p $AppTarDir
			echo "$AppTarDir 目录新建完成"
		fi
		wget -O $AppTarDir/$AppTar https://download.redis.io/releases/$AppTar
	fi
	echo "--------------解压处理--------------"
    # 解压
	tar -zxf $AppTarDir/$AppTar
	# 重命名并拷贝到build目录
	if [[ ! -d $AppBuildBase ]]; then
		# 如果文件夹不存在,新建目录
		echo "mkdir build"
		mkdir -p $AppBuildBase/$AppName 		  
	fi 
	rm -rf $AppBuildBase/$AppName
	mv $ScriptDir/$App $AppBuildBase/$AppName

	echo "--------------完成下载$AppTar --------------"

	echo "--------------安装 --------------"
	cd $AppBuildBase/$AppName

	# 编译
	make && make install PREFIX=$AppInstallBase/$AppName

	echo "--------------完成安装 --------------"

	echo "--------------修改配置文件 --------------"
	if [[ ! -d $AppBuildBase/$AppName/logs ]]; then
		# 如果logs文件夹不存在,新建目录
		echo "mkdir logs"
		mkdir -p $AppBuildBase/$AppName/logs 		  
	fi 
	# 开启后台运行
	sed -i 's/daemonize no/daemonize yes/' $AppBuildBase/$AppName/redis.conf
	# 增加log输出
	sed -i 's/logfile ""/logfile \.\/logs\/redis.log/' $AppBuildBase/$AppName/redis.conf
    
	echo "--------------启动redis-server --------------"
	# 启动 redis-server
	./src/redis-server  ./redis.conf
}

# 增加配置
fconfig(){
	echo "第二步"
	echo "--------------开始配置/etc/profile--------------"
	# 判断/etc/profile是否已有配置
	grep "export REDIS_HOME=$AppInstallBase/$AppName" /etc/profile 
	# $? 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值  0表示没有错误
	if [[ ! $? -eq 0 ]]; then
		echo "新增配置信息"
		echo "export REDIS_HOME=$AppInstallBase/$AppName" >> /etc/profile
    	echo "export PATH=\$PATH:\$REDIS_HOME/bin" >> /etc/profile
    	source /etc/profile
	else
		echo "/etc/profile中 $App 配置已存在"
	fi

	echo "--------------开始配置~/.bashrc, 增加全局变量--------------"
    # 增加全局变量
    # 判断/etc/profile是否已有配置
	grep "export REDIS_HOME=$AppInstallBase/$AppName" ~/.bashrc 
	# $? 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值  0表示没有错误
	if [[ ! $? -eq 0 ]]; then
		echo "新增配置信息"
		echo "export REDIS_HOME=$AppInstallBase/$AppName" >> ~/.bashrc
    	echo "export PATH=\$PATH:\$REDIS_HOME/bin" >> ~/.bashrc
    	source ~/.bashrc
	else
		echo "~/.bashrc中 $App 配置已存在"
	fi
    echo "--------------完成配置~/.bashrc--------------"
}

# 版本
fversion(){
	echo "第三步"
	echo "--------------查看状态--------------"
	redis-cli --version
}

# 是否开启远程访问
fbind(){
	case $1 in
		"open" )
			# 杀掉进程
			# ps auxf|grep redis|grep -v grep|xargs kill -9
			PIDTXT=$(ps -ef|grep redis|grep -v grep) 
			echo $PIDTXT > /tmp/PID
			PID=$(awk -F ' ' '{print $2}' /tmp/PID)
			echo "PID: $PID"
			kill -9 $PID
			cd $AppBuildBase/$AppName
			
			# 关闭保护模式
			sed -i 's/protected-mode yes/protected-mode no/' $AppBuildBase/$AppName/redis.conf
			# 注释 bind
			sed -i 's/bind 127.0.0.1/\#bind 127.0.0.1/' $AppBuildBase/$AppName/redis.conf
			# 重启
			$AppBuildBase/$AppName/src/redis-server $AppBuildBase/$AppName/redis.conf
			echo "开放所有IP可访问"
		;;
		"close" )
			# 杀掉进程
			# ps auxf|grep redis|grep -v grep|xargs kill -9
			PIDTXT=$(ps -ef|grep redis|grep -v grep) 
			echo $PIDTXT > /tmp/PID
			PID=$(awk -F ' ' '{print $2}' /tmp/PID)
			echo "PID: $PID"
			kill -9 $PID
			cd $AppBuildBase/$AppName

			# 开启保护模式
			sed -i 's/protected-mode no/protected-mode yes/' $AppBuildBase/$AppName/redis.conf
			# 注释 bind
			sed -i 's/\#bind 127.0.0.1/bind 127.0.0.1/' $AppBuildBase/$AppName/redis.conf
			# 重启
			$AppBuildBase/$AppName/src/redis-server $AppBuildBase/$AppName/redis.conf
			echo "关闭所有IP可访问,仅限本机访问"
		;;
		* )
			
		;;
	esac
}

# 安装
finstall(){
	fdownload
	fconfig
	fversion
}

case $1 in
	"install"  ) finstall;;
	"bind"     ) fbind $2;;
	*          )
	echo "install  安装$AppName"
    echo "bind  是否开启远程访问: bind open 开放所有IP可访问 | bind close 关闭所有IP可访问,仅限本机访问"
	;;
esac

安装

[root@AlexWong script]# sh redis-6.0.10.sh install

开启远程访问

[root@AlexWong script]# sh redis-6.0.10.sh bind open

关闭远程访问

[root@AlexWong script]# sh redis-6.0.10.sh bind close
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值