redis-4.0.1 源码一键安装脚本(centos 7)

#!/usr/bin/env bash

set -e

#定义下载路径:
SRC='/usr/local/src'

#定义redis 目录:
REDISDIR='/usr/local/redis'

#定义redis 密码:
REDISPAS="$(openssl rand -base64 32)" && echo ${REDISPAS} > /root/.REDIS_PAS

#从官网下载redis 源码包:
wget -O ${SRC}/redis-4.0.1.tar.gz  http://download.redis.io/releases/redis-4.0.1.tar.gz

#解压redis:
tar zxf ${SRC}/redis-4.0.1.tar.gz -C ${SRC}

#移动解压目录并重命名:
mv ${SRC}/redis-4.0.1 ${REDISDIR}

#进入redis 目录及创建目录:
cd ${REDISDIR} && mkdir {bin,etc,var}

make -j $(awk '/processor/{i++}END{print i}' /proc/cpuinfo)

#复制可执行文件到创建的 bin 目录:
cp -a ${REDISDIR}/src/redis-{benchmark,check-aof,check-rdb,cli,sentinel,server} ${REDISDIR}/bin

#复制redis 主配置文件到创建的 etc 目录:
cp -a ${REDISDIR}/redis.conf ${REDISDIR}/etc/

#替换配置,采用守护进程的方式启动redis
sed -i 's/^daemonize no/daemonize yes/' ${REDISDIR}/etc/redis.conf

#替换redis 的日志目录:
sed -i "s#^logfile ""#logfile "${REDISDIR}/var/redis_6379.log"#" ${REDISDIR}/etc/redis.conf

#替换redis 的 pid 文件路径:
sed -i "s#^pidfile /var/run/redis_6379.pid#pidfile ${REDISDIR}/var/redis_6379.pid#" ${REDISDIR}/etc/redis.conf

#替换redis 最大连接数:
sed -i "[email protected]^# maxclients [email protected] [email protected]"  ${REDISDIR}/etc/redis.conf

#设置redis 密码:
#sed -i "[email protected]^# requirepass [email protected] ${REDISPAS}@"  ${REDISDIR}/etc/redis.conf

#启用redis 监听socket:
sed -i "[email protected]^# unixsocket /tmp/[email protected]  ${REDISDIR}/var/[email protected]" ${REDISDIR}/etc/redis.conf

#设置 redis socket 文件的权限:
sed -i "s/^# unixsocketperm 700/unixsocketperm 777/" ${REDISDIR}/etc/redis.conf

#创建redis 启动脚本文件:
echo '[Unit]' > /usr/lib/systemd/system/redis.service
echo 'Description=Redis persistent key-value database' >> /usr/lib/systemd/system/redis.service
echo 'After=network.target' >> /usr/lib/systemd/system/redis.service
echo '' >> /usr/lib/systemd/system/redis.service
echo '[Service]' >> /usr/lib/systemd/system/redis.service
echo 'Type=forking' >> /usr/lib/systemd/system/redis.service
echo "ExecStart=${REDISDIR}/bin/redis-server ${REDISDIR}/etc/redis.conf" >> /usr/lib/systemd/system/redis.service
echo 'Restart=always' >> /usr/lib/systemd/system/redis.service
echo '' >> /usr/lib/systemd/system/redis.service
echo '[Install]' >> /usr/lib/systemd/system/redis.service
echo 'WantedBy=multi-user.target' >> /usr/lib/systemd/system/redis.service

#启动redis并设置成随机启动:
systemctl start redis && systemctl enable redis

#删除安装脚本
rm -rf $0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

10 分钟快速搭建 ELK 日志分析系统

作者:Json、 一、ELK搭建篇 官网地址: https://www.elastic.co/cn/ 官网权威指南: https://www.elastic....

3.9K100
来自专栏程序员同行者

工程创建和准备

12220
来自专栏程序员同行者

简单介绍RPM包制作方法

14130
来自专栏玩转JavaEE

Redis中的发布订阅和事务

hello,小伙伴们好久不见!前面我们说了redis中的基本数据类型,本文我们来看看redis中的发布订阅和事务,因为这两个都比较简单,因此我放在一篇文章中来讲...

11300
来自专栏代码世界

Django 跨域请求处理

27140
来自专栏calvin

.Net Core Linux centos7行—发布程序到生产环境

2.绑定的url不一致,可能是域名不一致,也可能是schema不一致(http,https)

16220
来自专栏openshift持续集成

配置jenkins邮件通知(openshift)

进入“系统管理”>>>“插件管理”安装邮件通知插件Email Ext Recipients Column Plugin,Email Extension Plug...

556130
来自专栏我的博客

SSI说明

一、SSI Server Side Include,是一种基于服务端的网页制作技术,大多数(尤其是基于Unix平台)的web服务器如Netscape Ente...

41860
来自专栏算法修养

把Asp.Net Core 2.0部署在Linux上,使用Nginx代理服务器,并且用Systemctl命令以服务的方式监听项目

在Linux上部署.net core 2.0程序: 第一步:配置Nginx代理 在/etc/nginx/sites-available/default 中添加 ...

42260
来自专栏向治洪

深入理解Android Build系统

概述 Android Build 系统是用来编译 Android 系统、Android SDK 以及相关文档的一套框架。在Android系统中,Android ...

22660

扫码关注云+社区

领取腾讯云代金券