第09章 CentOS7中Redis的安装配置与使用

本文详细介绍了在CentOS7环境中安装、配置及使用Redis的过程,包括编译安装、服务脚本修改、防火墙配置、配置文件调整及环境变量设置等关键步骤。

第09章 CentOS7中Redis的安装配置与使用

安装规划

IP**:192.168.4.111**

环境:CentOS 6.6

Redis****版本:redis-3.0 (考虑到Redis3.0在集群和性能提升方面的特性,rc版为正式版的候选版,而且很快就出正式版)

安装目录:/usr/local/redis

用户:root

安装

编译和安装所需的包:

# yum install gcc tcl 

下载3.0版Redis(当前最新版redis-3.0.0-rc5.tar.gz,请学员们在安装时自行选用最新版)

# cd /usr/local/src
# wget https://github.com/antirez/redis/archive/3.0.0-rc5.tar.gz

创建安装目录:

# mkdir /usr/local/redis

解压:

# tar -zxvf 3.0.0-rc5.tar.gz
# mv redis-3.0.0-rc5 redis3.0
# cd redis3.0

安装(使用PREFIX指定安装目录):

# make PREFIX=/usr/local/redis install

安装完成后,可以看到/usr/local/redis目录下有一个bin目录,bin目录里就是redis的命令脚本:

redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server

配置

将Redis配置成服务:

按上面的操作步骤,Redis的启动脚本为:/usr/local/src/redis3.0/utils/redis_init_script

将启动脚本复制到/etc/rc.d/init.d/目录下,并命名为redis:

# cp /usr/local/src/redis3.0/utils/redis_init_script /etc/rc.d/init.d/redis

编辑 /etc/rc.d/init.d/redis,修改相应配置,使之能注册成为服务:

# vi /etc/rc.d/init.d/redis
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

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

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.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

查看以上redis服务脚本,关注标为橙色的几个属性,做如下几个修改的准备:

(1) 在脚本的第一行后面添加一行内容如下:

#chkconfig: 2345 80 90

(如果不添加上面的内容,在注册服务时会提示:service redis does not support chkconfig)

(2) REDISPORT端口保持6379不变;(注意,端口名将与下面的配置文件名有关)

(3) EXEC=/usr/local/bin/redis-server改为 EXEC=/usr/local/redis/bin/redis-server

(4) CLIEXEC=/usr/local/bin/redis-cli改为CLIEXEC=/usr/local/redis/bin/redis-cli

(5) 配置文件设置:

创建redis配置文件目录

# mkdir /usr/local/redis/conf

复制redis配置文件/usr/local/src/redis3.0/redis.conf/usr/local/redis/conf目录并按端口号重命名为6379.conf

# cp /usr/local/src/redis3.0/redis.conf /usr/local/redis/conf/6379.conf

做了以上准备后,再对CONF属性作如下调整:

CONF="/etc/redis/${REDISPORT}.conf"改为 CONF="/usr/local/redis/conf/${REDISPORT}.conf"

(6) 更改redis开启的命令,以后台运行的方式执行:

$EXEC $CONF & #“&”作用是将服务转到后面运行

修改后的/etc/rc.d/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. 

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

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/conf/${REDISPORT}.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

以上配置操作完成后,便可将Redis注册成为服务:

# chkconfig --add redis

防火墙中打开对应的端口

# vi /etc/sysconfig/iptables
## 添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
## 重启防火墙:
# service iptables restart

修改redis配置文件设置:

# vi /usr/local/redis/conf/6379.conf
## 修改如下配置
daemonize no 改为> daemonize yes
pidfile /var/run/redis.pid 改为> pidfile /var/run/redis_6379.pid

启动Redis服务

# service redis start

将Redis添加到环境变量中:

# vi /etc/profile
在最后添加以下内容:
## Redis env
export PATH=$PATH:/usr/local/redis/bin
使配置生效:
# source /etc/profile

现在就可以直接使用redis-cli等redis命令了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2qIcfoq-1599485784830)(assets/1535902065946.png)]

关闭Redis服务

# service redis stop

默认情况下,Redis开启安全认证,可以通过/usr/local/redis/conf/6379.confrequirepass指定一个验证密码。
source /etc/profile


现在就可以直接使用redis-cli等redis命令了:

[外链图片转存中...(img-i2qIcfoq-1599485784830)]                                                  

 

关闭Redis服务

```bash
# service redis stop

默认情况下,Redis开启安全认证,可以通过/usr/local/redis/conf/6379.confrequirepass指定一个验证密码。

<think>好的,我现在需要在CentOS 7上检查Redis服务是否已经启动。让我先回忆一下相关的命令和方法。 首先,CentOS 7使用systemd作为初始化系统,所以应该用systemctl命令来管理服务。我记得可以通过systemctl status来查看服务状态,比如输入systemctl status redis或者redis-server之类的服务名。不过具体的服务名称可能根据安装方式不同而变化,比如有些可能叫redis.service,或者用户自定义的名称。 然后,如果服务名称不确定,可以用systemctl list-units --type=service来列出所有服务,再过滤出redis相关的。或者用grep命令查找,比如systemctl list-unit-files | grep redis。 另外,还可以用ps命令查看进程,比如ps aux | grep redis,这样可以看到是否有redis-server进程在运行。如果有输出,通常第二列是PID,说明服务正在运行。 还有,Redis客户端命令redis-cli可以用来连接服务器,如果连接成功,执行ping命令会返回PONG,这也说明服务是启动的。如果连接失败,可能服务没启动或者配置有问题。 可能遇到的问题:如果安装没有Redis配置为系统服务,那么systemctl可能找不到服务名,这时候只能通过进程查看或者端口检测。比如用netstat -tuln | grep 6379检查默认端口6379是否在监听。 用户提供的引用中有提到使用service redisd start,这说明有些安装方式可能将服务命名为redisd,所以检查的时候可能需要用systemctl status redisd或者service redisd status。同时,引用[2]提到将redis_6379改名为redisd,所以服务名可能不是默认的redis,而是redisd。 总结下来,步骤应该是: 1. 使用systemctl检查服务状态,可能的服务名包括redisredisd、redis.service等。 2. 如果服务存在且状态是active (running),说明已启动。 3. 如果服务不存在,用ps和netstat检查进程和端口。 4. 使用redis-cli验证是否可以连接。 需要确保用户正确安装Redis配置了服务,如果没有正确配置服务,可能需要参考引用中的步骤来设置开机启动,但当前问题只是检查是否启动。</think>在 CentOS 7 上,可以通过以下方法检查 Redis 服务是否已启动: --- ### **方法1:使用 `systemctl` 命令查看服务状态** 1. 执行以下命令,查看 Redis 服务状态: ```bash systemctl status redis ``` 如果 Redis 服务名称被修改过(例如 `redisd`),则需替换为实际名称: ```bash systemctl status redisd ``` 2. 若输出显示 **`Active: active (running)`**,则表明 Redis 已启动[^3]: ```bash ● redis.service - Redis persistent key-value database Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2023-10-10 09:00:00 UTC; 2h ago ``` --- ### **方法2:通过进程检查** 1. 运行以下命令,查看 Redis 进程是否存在: ```bash ps aux | grep redis ``` 2. 若输出中包含类似 **`redis-server *:6379`** 的进程信息,则表明 Redis 正在运行[^2]。 --- ### **方法3:使用 `redis-cli` 连接验证** 1. 通过 Redis 客户端尝试连接服务: ```bash redis-cli ping ``` 2. 若返回 **`PONG`**,则说明 Redis 服务已正常启动。 --- ### **方法4:检查端口监听状态** 1. 查看 Redis 默认端口 `6379` 是否被监听: ```bash netstat -tuln | grep 6379 ``` 2. 若输出中包含 **`LISTEN`** 状态,则表明 Redis 正在运行。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值