linux系统下安装和配置redis(2021版)
Posted 于大圣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统下安装和配置redis(2021版)相关的知识,希望对你有一定的参考价值。
前言:最近在阿里云市场中租用了一台ESC,学习和研发用途。操作系统版本为CentOS 7.9 64位,需要配置一些基础环境,其中就包括redis。在此记录下redis的安装和配置过程,方便自己和后来者。
常识:
- redis是C语言编写的,因此它运行需要C环境,如果使用redis的服务器中没有C环境则需要安装;
- 从官网下载的redis压缩包(redis-*.*.*.tar.gz)可以简单看做是C项目代码,如果我们需要实际使用它需要经过安装和编译两个过程;
- redis.conf是redis的配置文件。虽然我们可以在这个配置文件的任意地方配置redis参数(比如requirepass参数),但如果你认真查看这个文件你会发现整个配置文件会根据所配置的功能模块不同而分开,我们所以如果我们在添加或者启用某个配置时也尽量在此区域进行配置;
- linux的/usr/local文件夹可以理解为用户级的程序目录,类似于windows的C:\\Program Files,一般用户自己编译的软件默认会安装到这个目录下;
下面开始动手吧!
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默认是不需要密码的,如果我们需要密码登录时就需要找到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
以上,完了!
以上是关于linux系统下安装和配置redis(2021版)的主要内容,如果未能解决你的问题,请参考以下文章