第一步:下载
进入官网找到下载地址 https://redis.io/download
然后根据自己的Linux版本选择相应的tar包
第二步:环境配置
由于redis是由C语言编写的,它的运行需要C环境,因此我们需要先安装gcc。安装命令如下:
yum install gcc-c++
第三步:准备基础配置
1、新建/app目录
mkdir /app
2、app目录添加权限
chmod -R 777 /app/
3、新建redis目录
mkdir -p /app/redis
4、拷贝安装包
用xftp工具将下载的redis安装包上传到linux服务器的/app/redis目录下面
5、解压文件
cd /app/redis
tar -zxvf redis-6.2.6.tar.gz
第四步:配置Redis
1、复制redis.conf文件
cd /app/redis/redis-6.2.6
cp redis.conf redis.conf-bak
2、修改相关配置
vim redis.conf
修改如下配置:
- dir 改为实际的安装目录
- daemonize 属性改为yes(表明需要在后台运行)
- bind 127.0.0.1 这一行给注释掉,(开启redis远程访问服务,这里的bind指的是只有指定的网段才能远程访问这个redis)
- protected-mode 设置成no(默认是设置成yes的, 防止了远程访问,在redis3.2.3版本后)
- 在配置文件中找到这一行 # requirepass foobared,删除开头的#号,并将foobared改为自己实际的密码,或者另起一行进行配置
3、编译安装
切换到安装目录执行
make PREFIX=/app/redis/redis-6.2.6 install
出现如下输出即为成功
并且会在该目录下生成bin/目录,里面是redis的运行脚本
4、添加自定义的启动脚本
如果不嫌麻烦的话,redis官方的启动也可以用,如果想方便省事,就可以自己新建一个,我个人使用的执行脚本内容如下:
#!/bin/bash
install_path=/app/redis/redis-6.2.6
server_path=$install_path/bin/redis-server
if [ $# -lt 1 ]; then
echo "please entry start/stop/restart"
exit 1
fi
pid(){
pid_num=`ps -ef | grep redis-server | grep redis | grep -v grep| awk '{print $2}'`
echo "$pid_num"
return $pid_num
}
start(){
pidNum=$(pid)
if [ "$pidNum" != "" ]; then
echo "redis:[$pidNum] is running..."
else
$server_path $install_path/redis.conf
echo "redis is starting..."
fi
}
stop(){
pidNum=$(pid)
if [ "$pidNum" == "" ]; then
echo "redis is down..."
else
echo "kill redis pid[$pidNum]"
kill $pidNum
fi
}
restart(){
stop
sleep 1
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "unknown run param, please entry start|stop|restart"
exit 1
;;
esac
第五步:配置Redis开机自启动
1、切换至root用户
在 /etc/init.d/目录下 新建文件 redis(没有后缀)
文件内容如下:
#!/bin/sh
# chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
REDISPORT=6379
EXEC=/app/redis/redis-6.2.6/bin/
CLIEXEC=/app/redis/redis-6.2.6/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF=/app/redis/redis-6.2.6/redis.conf
su appadmin /app/redis/redis-6.2.6/run.sh $1
2、其中第2行,虽然以# 开头,实际却不是注释的意思,是有实际的作用的
# chkconfig: 2345 80 90
其中2345表示系统运行级别是2,3,4或者5时都启动此服务,80是启动的优先级,90是关闭的优先级,如果启动优先级配置的数太小时如0时,则有可能启动不成功
3、最后一行表示以什么用户执行什么脚本
su appadmin /app/redis/redis-6.2.6/run.sh $1
这个样例就表示,用appadmin用户,执行/app/redis/redis-6.2.6/run.sh脚本,脚本入参是执行 /etc/init.d/redis时,传入的第一个参数
注:
linux在开机执行自启动脚本时,会传入start
在开机执行自启动脚本时,会传入stop
4、修改完成之后 :wq 保存即可
5、配置自启动
chkconfig --add redis
表示将新建的redis脚本添加到自启列表
chkconfig --list
可以查看已有的自启服务,如果有redis的,即为成功
第六步:Linux放行Redis服务端口
执行以下两个命令即可
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload