首页 > 数据库 >centos 7 安装 redis 的脚本文件

centos 7 安装 redis 的脚本文件

时间:2024-04-18 15:44:26浏览次数:23  
标签:脚本 service centos redis echo version fi installDir

新建 Bash 脚本文件

vim install_redis.sh

复制脚本文件

点击查看代码
#!/bin/bash

# 安装版本
redis_version="6.2.7"
# 默认安装目录,可以通过第一个参数指定
redis_installDir="/opt/redis"

# Redis密码和端口,可以通过第二个和第三个参数指定
# 默认密码为"yourpassword",默认端口为6379
redis_password="whAdminRedisFrp"
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

mkdir /etc/systemd/system/redis.service

编辑 redis.service

vim /etc/systemd/system/redis.service

复制下面的脚本

点击查看代码
[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

修改 ExecStart 属性

执行命令

  • 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 #停止开机自启动

标签:脚本,service,centos,redis,echo,version,fi,installDir
From: https://www.cnblogs.com/r-ming/p/18143646

相关文章

  • blender python api 使用脚本修改动画关键帧的属性值
    1.代码1-将动画关键帧中的所有Y轴都设置为1.0,代码:importbpy#设置重置到的Y坐标值reset_to=1.0#遍历所有当前选中的对象forobjectinbpy.context.selected_objects:#如果对象没有动画,我们也应该重置其Y坐标object.location.y=reset_to#检......
  • 对大量ip:port进行批量telnet检测的python脚本
    对大量ip:port进行批量telnet检测的python脚本telnet_test.py#导入socket模块,用于网络通信importsocket#定义一个函数,用于测试Telnet连接是否成功deftest_telnet(ip,port):try:#尝试创建到指定IP和端口的连接socket.create_connection((ip,po......
  • redis自学(37)集群伸缩
    集群伸缩添加一个节点到集群:Redis-cli--cluster提供了很多操作集群的命令,可以通过下面方式查看:  比如,添加节点的命令  先输入新增的ip和端口号,后输入集群已经有的ip和端口号好指定添加到哪个集群。默认是增加master节点,加上--cluster-slave是变成了slave。--cluster......
  • gaussdb通过编写shell脚本自动化执行查询和结果收集
    转:https://support.huaweicloud.com/pwp-dws/dws_13_00033.html1、登录ECS,进入到/opt目录下,使用vim命令生成query.conf和run_query.sh两个脚本文件。脚本内容如下,编辑后按:wq!保存脚本配置:run_query.sh脚本如下:#!/bin/bashscript_path=$(cd`dirname$0`;pwd)query_mode=$1......
  • redis的事务
    回顾阳哥的redis视频,总结一下redis的事务。是什么可以一次执行多个命令,本质就是一组命令的集合,一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不允许加塞。能干嘛一个队列中,一次性,顺序性,排他性的执行一系列命令。watch监控watch使得exec命令需要有......
  • blender python api 使用脚本批量对obj物体进行渲染(obj所在目录要有与之对应的mtl文件
     代码:importbpy#导入Blender的PythonAPI接口importpathlib#导入pathlib模块,用于操作文件路径#设置OBJ文件所在的目录路径obj_root=pathlib.Path('D:\\ceshi')#注意Windows路径中的斜杠需要转义#取消选择场景中的所有物体,以便导入时不会与已选择的物体冲......
  • 【构建】start.sh脚本中变量被maven profile构建过程替换
    启动脚本readonlyAPP_NAME="${project.artifactId}"#定义当前应用的名称readonlyJAR_VERSION="${project.version}"#打包的JAR版本EXE_JAR="$APP_NAME-$JAR_VERSION.jar"如何通过maven构建的时候将相应变量内容进行替换呢依赖插件maven-resources-plug......
  • 【Docker】Docker部署Redis
    ✨Docker本文介绍DockerDesktop以及docker命令行的简单使用DockerDesktop安装使用请查阅官方文档GetDocker|DockerDocumentation在Windows上安装DockersDesktop可参考【Docker】DockerDesktopforWindows(WSL2)安装-双份浓缩馥芮白-博客园(cnblogs.com)似乎......
  • centos7 修改root密码 密码忘记的情况下
    1、重启虚拟机开启虚拟机在弹出这个界面时,按上下键防止页面跳转,选择"CentOSLinux(3.10.0-1160.e17.x8664)7(Core)"并按e 2、找到linux16开头的那行将rocrashkernel=autoxxx,把ro换成rwinit=/sysroot/bin/sh  3、 使用组合键Ctrl+X进入单用户模式 chroot......
  • 利用python脚本对邮箱密码进行批量爆破
    利用python脚本对邮箱密码进行批量爆破importpoplib#导入POP3库fromemailimportparser#导入邮件解析器fromgetpassimportgetpass#导入密码输入函数pop_server='mail.test.com'#设置POP3服务器地址,改成需要爆破的目标邮箱pop3服务器地址pop_port=995......