前言:最近在阿里云市场中租用了一台ESC,学习和研发用途。操作系统版本为CentOS 7.9 64位,需要配置一些基础环境,其中就包括redis。在此记录下redis的安装和配置过程,方便自己和后来者。
常识:
下面开始动手吧!
1、从redis官网下载redis压缩包;在链接页面,罗列出了各种历史版本的redis,大家按需下载即可;如果大家不是对最新版的某些新特性要求不高时,下载稳定的老版本即可满足日常使用,本篇博客使用的是redis-5.0.0.tar.gz,建议版本一致。
2、上传redis-5.0.0.tar.gz至/usr/local并解压缩;本步骤涉及两个操作:上传、解压缩和删除压缩包操作。上传指的是将步骤1下载得到的jar包上传至/usr/local文件夹下,市面上有大量上传文件的工具比如:filezilla、Xshell、WinSCP等,酌情选择即可。然后解压缩至当前文件夹并删除压缩包,命令和解压缩后如图:
# 解压缩至当前文件夹
tar -zxvf redis-5.0.0.tar.gz
# 删除压缩包
rm -f redis-5.0.0.tar.gz
3、编译并安装redis;分为3个小步骤,所有操作都是在redis或子目录下展开的
3.1检查当前操作系统中是否含有C环境;如果没有,则执行下列命令安装:
yum install gcc-c++
3.2 切换到redis目录下,执行make命令来对解压后的文件进行编译,编译后生成大量的*.obj;
# 切换至redis文件夹
cd ./redis-5.0.0/
# 对解压缩后的redis文件进行编译
make
3.3 切换到redis/src目录下安装redis;依靠步骤3.2生成的内容产生redis-server、redis-cli等可执行文件或sh。
# 切换至redis/src目录
cd ./src/
# 安装redis
make install
4、整理redis文件;一般会将redis常用命令(比如redis-server、redis-cli等可执行文件、SH)和配置文件(redis.conf)按照习惯放置到不同的目录下,比如命令类放置到bin目录,配置类文件放置到etc目录。在redis根目录下新建两个目录:bin和etc。然后将redis根目录下的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server移动到bin,将redis根目录下的redis.conf文件移动到etc目录下;命令和移动后效果如下:
# 创建bin目录
mkdir bin
# 创建etc目录
mkdir etc
# 移动常用内容到bin目录
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server ./bin/
# 移动redis配置到etc目录
mv redis.conf ./etc/
上述命令执行完毕,redis根目录下应该是如下结构,bin和etc是新增的,其它内容为解压缩或编译后生成的:
bin目录内容如下:
etc目录内容如下:
5、到此为止,如果你当前工作目录是redis/bin,那么你就可以通过诸如如下命令,来启动redis;
nohup ./redis-server ../etc/redis.conf &
然后在通过如下方式测试一下是否成功:
一、需要密码访问redis;由于redis默认是不需要密码的,如果我们需要密码登录时就需要找到redis/etc/redis.conf文件,搜索requirepass关键字,找到SECURITY区域,在该区域内填写:requirepass 你的密码,比如requirepass 123456。那么你访问redis的时候就需要使用123456这个密码登录后才可以使用redis;记住:只要修改配置文件,都需要重启服务器;
二、 redis的外网访问。能否外网访问取决于三个条件:软件本身允许、应用启动后监听对应端口(默认为6379,可在redis.conf中修改)和安全策略(防火墙或白名单等),简单来说只要是出现了外网不能访问肯定是这三个哪一个出问题了,挨着确认即可解决问题;对于后面两个条件,本次不做讲解,重点说说第一个条件。在redis.conf配置中有两个参数限制了外网访问:bind和protected-mode。如果redis.conf配置是下列状况时就表示只允许本机访问;
bind 127.0.0.1
protected-mode yes
那么要解决很简单,注释掉bind和修改yes -> no,如下即可:
# bind 127.0.0.1
protected-mode no
本次问了缩小代码篇幅,放到一起展示,实际上是在redis.conf不同位置,请知晓!
三、 redis的开机自启动;关于开启自启动,归纳以下有两种方式:脚本方式 + 配置方式,这两种方式本质都是利用了linux自启动机制,不多做描述,具体命令或脚本如下所示:
1、 配置方式:添加 /usr/local/redis-5.0.0/bin/redis-server /usr/local/redis-5.0.0/etc/redis.conf 到 /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
2、 脚本方式:通过以下命令编写redis自启动脚本,然后授予权限,最后启动即可:
vim /etc/init.d/redis
脚本内容如下:
#!/bin/sh
# chkconfig: 2345 10 90
# description: Start and Stop redis
REDISPORT=6379 #默认端口
EXEC=/usr/local/redis-5.0.0/bin/redis-server #EXEC:redis文件夹所在的redis-server所在路径
CLIEXEC=/usr/local/redis-5.0.0/bin/redis-cli #CLIEXEC:redis文件夹所在的redis-cli所在路径
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis-5.0.0/etc/redis.conf" #CONF:redis启动所用的配置文件
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart)
"$0" stop
sleep 3
"$0" start
;;
*)
echo "Please use start or stop or restart as first argument"
;;
esac
接下来授予脚本权限 -> 设置开机自启动 -> 启动redis
# 赋予脚本权限
chmod 777 /etc/init.d/redis
# 设置开机自启动:
chkconfig redis on
# 启动redis
service redis start