官方教程路径:https://redis.io/download
下载redis
下载前最好进入/usr/local目录
cd /usr/local
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
安装redis
解压tar包
tar xzf redis-6.0.5.tar.gz
cd redis-6.0.5
构建redis
make
如果出现如下报错,则说明gcc版本过低,需要升级gcc
server.c:5166:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
查看gcc版本
gcc -v
解决办法
# 升级到 5.3及以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
# 注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
# 如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
然后重新make
启动redis
src/redis-server
如果出现下图所示则代表启动成功
修改redis配置
vim redis.conf
# 如果没有vim命令则使用vi命令
vi redis.conf
修改如下配置(按i进入编辑模式)
# 后台运行(守护线程,no为关闭,yes为开放)
daemonize yes
# 保护模式(yes开启,no关闭,如果开启该设置,则没有账号密码不能远程访问redis)
protected-mode no
# 设置可以访问redis的ip,设为0.0.0.0默认所有ip都可以访问
bind 0.0.0.0
按ESC,输入:wq保存退出
:wq
使用当前配置启动redis
src/redis-server redis.conf
配置redis全局环境
修改/etc/profile配置
vim /etc/profile
# 如果没有vim命令则使用vi命令
vi /etc/profile
添加下面所示代码(按i进入编辑模式)
# 注:/usr/local/redis-6.0.5/src为你的redis src所在路径
export PATH=$PATH:/usr/local/redis-6.0.5/src
按ESC,输入:wq保存
:wq
使用source /etc/profile使配置文件生效
source /etc/profile
现在你可以在linux任意地方启动redis服务器了
redis-server <redis.conf路径>
开放端口(阿里云需要开放安全组)
CentOS7.0以上默认使用firewall防火墙
# 查询端口是否开放
firewall-cmd --query-port=6379/tcp
# 开放6379端口
firewall-cmd --permanent --add-port=6379/tcp
# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
CentOS7.0以下使用iptables防火墙
# 开启6379端口
vim /etc/sysconfig/iptables
# 加入如下代码(按i进入编辑模式)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
# 保存退出后重启防火墙 (按ESC输入:wq按ENTER保存退出)
service iptables restart
配置redis服务
修改redis.conf文件
vim redis.conf
# 如果没有vim命令则使用vi命令
vi redis.conf
修改如下配置(按i进入编辑模式)
dir /usr/local/redis-6.0.5/data
按ESC,输入:wq保存
:wq
在redis-6.0.5目录下创建data文件夹
mkdir data
将redis_init_script(在redis安装目录下面的utils目录下)拷贝到/etc/init.d目录下并重命名为 redis
cp utils/redis_init_script /etc/init.d/redis
# 进入/etc/init.d
cd /etc/init.d
ls
编辑redis文件(按i进入编辑模式)
vim redis
# 如果没有vim命令则使用vi命令
vi redis
#!/bin/sh
#
# 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 #redis端口号,不用修改
EXEC=/usr/local/redis-6.0.5/src/redis-server #将该路径修改为你redis-server所在路径
CLIEXEC=/usr/local/redis-6.0.5/src/redis-cli #将该路径修改为你redis-cli所在路径
PIDFILE=/var/run/redis_${REDISPORT}.pid #这个文件是 redis 启动后自动生成的,可用于检测 redis 是否启动,此处不要修改
CONF="/usr/local/redis-6.0.5/redis.conf" #将该路径修改为你redis.conf所在路径
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
;;
*)
echo "Please use start or stop as first argument"
;;
esac
按ESC,输入:wq保存
:wq
查看有没有同名的redis服务
chkconfig --list
没有就给刚刚建的redis文件添加可执行权限
chmod 755 /etc/init.d/redis
将redis添加为系统服务
chkconfig --add redis
查看系统服务列表,出现redis服务则代表成功
chkconfig --list
接下来就可以使用 service redis start和 service redis stop来开启或停止服务了
查看redis是否启动
ps -ef|grep redis
未启动则输入service redis start启动redis服务(出现下图所示则代表启动成功)
service redis start
查看redis是否启动
ps -ef|grep redis
关闭redis服务
service redis stop
查看redis是否关闭
ps -ef|grep redis
配置客户端服务
编辑redis文件(按i进入编辑模式)
vim /etc/init.d/redis
# 如果没有vim命令则使用vi命令
vi /etc/init.d/redis
新增cli
#!/bin/sh
#
# 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=/usr/local/redis-6.0.5/src/redis-server
CLIEXEC=/usr/local/redis-6.0.5/src/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis-6.0.5/redis.conf"
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
;;
cli) #新增cli,此处配置的是redis-cli启动
if [ -f $PIDFILE ]
then
$CLIEXEC
else
echo "Redis service is not started"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
启动客户端命令
service redis cli