安装

从官网下载源码安装包,下载地址:http://redis.io/download

本教程使用的redis版本为 6.2.4

解压

tar -zxvf redis-6.2.4.tar.gz

移动redis目录

一般都会将redis目录放置到 /usr/local/目录下

mv redis-6.2.4 /usr/local/

编译

进入redis-6.2.4文件夹目录,输入命令make执行编译命令

cd /usr/local/redis-6.2.4/
make

编译redis过程中出现一处报错"cc:未找到命令",原因是系统中缺少gcc,安装gcc即可。

在这里插入图片描述
安装GCC

yum -y install gcc automake autoconf libtool make

出现以下信息表示安装成功。

在这里插入图片描述
重新执行make命令。又出现问题:zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录。

在这里插入图片描述
解决方法,执行命令:make MALLOC=libc

make MALLOC=libc

编译终于通过

在这里插入图片描述
安装

make PREFIX=/usr/local/redis-6.2.4 install

注意: 这里多了一个关键字PREFIX,这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录,配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。

在这里插入图片描述
安装完成。

启动redis

根据上面的操作已经将redis安装完成了。在目录/usr/local/redis-6.2.4下启动redis

./bin/redis-server ./redis.conf

启动出现权限不够问题

在这里插入图片描述
赋予权限重新运行

chmod 777 bin/redis-server redis.conf

出现如下结果表示redis启动成功

在这里插入图片描述

redis.conf配置文件

在目录/usr/local/redis-6.2.4.下有一个redis.conf的配置文件,重要配置项说明如下:

在这里插入图片描述

设置其他机器访问

vim /usr/local/redis/redis.conf

这里将daemonize改为yes,将bind中127.0.0.1改为*,将protected-mode设置为no
这样启动后我就可以在外网访问了。

通过 /daemonize 查找到属性,默认是no,更改为yes即可。 (通过/关键字查找出现多个结果则使用 n字符切换到下一个即可,查找到结果后输入:noh退回到正常模式)

Redis客户端连接

在redis的安装目录下有reds的客户端,即redis-cli(Redis Command Line Interface),它是Redis自带的基于命令行的Redis客户端。命令:redis-cli -h ip地址 -p 端口

./bin/redis-cli

Redis的停止

(1)强制结束程序。使用kill -9 PID,强行终止Redis进程可能会导致redis持久化丢失;

在这里插入图片描述
(2)正确停止redis的方式是向redis发送shutdown命令,方法为:(关闭默认端口)

./bin/redis-cli shutdown

设置Redis服务开机自启(其他服务方法类似)

/etc/init.d 目录

1、init.d 目录中存放的是一系列系统服务的管理(启动与停止)脚本。
2、用service命令可执行init.d目录中相应服务的脚本。
	例:执行命令“service redis start”,可启动/etc/init.d/redis脚本
3、/etc/init.d是指向/etc/rc.d/init.d的软连接

开机自启动方法

将启动脚本放在 /etc/init.d/ 目录下,再将脚本加入到chkconfig管理中

编写脚本

vim /etc/init.d/redis

复制下面代码到脚本中(注意要修改里面redis的安装路径)

#!/bin/sh
# description: Start and Stop redis   

REDISPORT=6379
EXEC=/usr/local/redis-6.2.4/src/redis-server
CLIEXEC=/usr/local/redis-6.2.4/src/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis-6.2.4/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
        ;;
    restart)
        "$0" stop
        sleep 3
        "$0" start
        ;;
    *)
        echo "Please use start or stop or restart as first argument"
        ;;
esac

chkconfig管理

将脚本添加到chkconfig,开机自启动

chkconfig --add redis

关闭开机启动

chkconfig redis off

从chkconfig管理中删除脚本

chkconfig --del redis
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐