| #!/bin/bash |
| |
| |
| source /etc/init.d/functions |
| |
| Redis_version=redis-5.0.9 |
| suffix=tar.gz |
| Redis=${Redis_version}.${suffix} |
| Password=123456 |
| |
| |
| redis_url=http://download.redis.io/releases/${Redis} |
| |
| redis_install_DIR=/apps/redis |
| |
| |
| CPUS=`lscpu|grep "^CPU(s)"|awk '{print $2}'` |
| |
| color () { |
| if [[ $2 -eq 0 ]];then |
| echo -e "\e[1;32m$1\t\t\t\t\t\t[ OK ]\e[0;m" |
| else |
| echo $2 |
| echo -e "\e[1;31m$1\t\t\t\t\t\t[ FAILED ]\e[0;m" |
| fi |
| } |
| |
| |
| download_redis (){ |
| |
| yum -y install gcc jemalloc-devel || { color "安装依赖包失败,请检查网络" 1 ;exit 1;} |
| |
| cd /opt |
| if [ -e ${Redis} ];then |
| color "Redis源码包已存在" 0 |
| else |
| color "开始下载Redis源码包" 0 |
| wget ${redis_url} |
| if [ $? -ne 0 ];then |
| color "下载Redis源码包失败,退出!" 1 |
| exit 1 |
| fi |
| fi |
| } |
| |
| |
| install_redis (){ |
| |
| tar xvf /opt/${Redis} -C /usr/local/src |
| ln -s /usr/local/src/${Redis_version} /usr/local/src/redis |
| |
| |
| cd /usr/local/src/redis |
| make -j ${CPUS} install PREFIX=${redis_install_DIR} |
| if [ $? -ne 0 ];then |
| color "redis 编译安装失败!" 1 |
| exit 1 |
| else |
| color "redis编译安装成功" 0 |
| fi |
| |
| ln -s ${redis_install_DIR}/bin/redis-* /usr/sbin/ |
| |
| |
| if id redis &> /dev/null;then |
| color "redis用户已存在" 1 |
| else |
| useradd -r -s /sbin/nologin redis |
| color "redis用户已创建完成" 0 |
| fi |
| mkdir -p ${redis_install_DIR}/{etc,log,data,run} |
| |
| |
| cp redis.conf ${redis_install_DIR}/etc/ |
| sed -i "s/bind 127.0.0.1/bind 0.0.0.0/" ${redis_install_DIR}/etc/redis.conf |
| sed -i "/# requirepass/a requirepass ${Password}" ${redis_install_DIR}/etc/redis.conf |
| sed -i "s@^dir .*\$@dir ${redis_install_DIR}\/data@" ${redis_install_DIR}/etc/redis.conf |
| sed -i "s@^logfile .*\$@logfile ${redis_install_DIR}\/log\/redis-6379.log@" ${redis_install_DIR}/etc/redis.conf |
| sed -i "s@^pidfile .*\$@pidfile ${redis_install_DIR}\/run\/redis-6379.pid@" ${redis_install_DIR}/etc/redis.conf |
| |
| chown -R redis:redis ${redis_install_DIR} |
| |
| cat >> /etc/sysctl.conf <<EOF |
| net.core.somaxconn = 1024 |
| vm.overcommit_memory = 1 |
| EOF |
| sysctl -p |
| |
| echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local |
| chmod +x /etc/rc.d/rc.local |
| source /etc/rc.d/rc.local |
| |
| |
| |
| cat > /usr/lib/systemd/system/redis.service <<EOF |
| [Unit] |
| Description=redis persistent key-value database |
| After=network.target |
| |
| [Service] |
| ExecStart=${redis_install_DIR}/bin/redis-server ${redis_install_DIR}/etc/redis.conf --supervised systemd |
| ExecStop=/bin/kill -s QUIT \$MAINPID |
| Type=notify |
| User=redis |
| Group=redis |
| RuntimeDirectory=redis |
| RuntimeDirectoryMode=0755 |
| |
| [Install] |
| WantedBy=multi-user.target |
| EOF |
| |
| chown -R redis:redis ${redis_install_DIR} |
| systemctl daemon-reload |
| systemctl enable --now redis |
| systemctl is-active redis |
| |
| if [ $? -ne 0 ];then |
| color "redis服务启动失败!" 1 |
| exit 1 |
| else |
| color "redis服务启动成功" 0 |
| color "redis安装已完成" 0 |
| fi |
| } |
| |
| |
| download_redis |
| |
| install_redis |
| |
| exit 0 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器