Linux安装Redis及三种启动方式详解

Redis是一个开源的内存数据结构存储系统,用作数据库、缓存和消息中间件。本文将详细介绍在Linux系统上安装Redis以及三种不同的启动方式。

图片[1]_Linux安装Redis及三种启动方式详解_知途无界

一、Redis安装

1.1 环境准备

# 更新系统包管理器
sudo apt update          # Ubuntu/Debian
# 或
sudo yum update          # CentOS/RHEL

# 安装编译工具和依赖
sudo apt install build-essential tcl -y    # Ubuntu/Debian
# 或
sudo yum groupinstall "Development Tools" -y
sudo yum install tcl -y                     # CentOS/RHEL

1.2 下载和编译安装Redis

# 1. 下载Redis源码
cd /usr/local/src
sudo wget https://download.redis.io/releases/redis-7.2.4.tar.gz

# 2. 解压
sudo tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4

# 3. 编译
sudo make

# 4. 运行测试(可选但推荐)
sudo make test

# 5. 安装Redis到系统
sudo make install

# 6. 创建Redis相关目录
sudo mkdir -p /etc/redis
sudo mkdir -p /var/lib/redis
sudo mkdir -p /var/log/redis

# 7. 复制配置文件
sudo cp redis.conf /etc/redis/

1.3 配置Redis

编辑配置文件 /etc/redis/redis.conf

sudo vim /etc/redis/redis.conf

关键配置项修改:

# 绑定地址,允许远程连接(根据需求设置)
bind 127.0.0.1 ::1
# 或者允许所有连接(生产环境谨慎使用)
# bind 0.0.0.0

# 保护模式
protected-mode yes

# 端口
port 6379

# 后台运行
daemonize yes

# PID文件路径
pidfile /var/run/redis.pid

# 日志级别
loglevel notice

# 日志文件
logfile /var/log/redis/redis.log

# 数据库文件
dir /var/lib/redis

# 设置密码(强烈建议)
requirepass your_strong_password_here

# 最大内存设置(根据服务器内存调整)
# maxmemory 256mb
# maxmemory-policy allkeys-lru

创建Redis用户和设置权限:

# 创建Redis用户
sudo adduser --system --group --no-create-home redis

# 设置目录权限
sudo chown -R redis:redis /var/lib/redis
sudo chown -R redis:redis /var/log/redis
sudo chown redis:redis /etc/redis/redis.conf

二、三种启动方式详解

2.1 方式一:直接启动(前台启动)

这是最简单的启动方式,适用于开发和测试环境。

# 直接使用redis-server启动
redis-server /etc/redis/redis.conf

# 或者不指定配置文件,使用默认配置启动
redis-server

# 启动并指定端口
redis-server --port 6380

# 启动并指定配置文件
redis-server /path/to/your/redis.conf

特点:​

  • ✅ 简单直接,无需额外配置
  • ✅ 适合快速测试和开发
  • ❌ 终端关闭后Redis进程会终止
  • ❌ 无法进行进程管理
  • ❌ 不适合生产环境

停止方式:​

# 在另一个终端使用redis-cli关闭
redis-cli shutdown

# 或者查找进程ID并杀死
ps aux | grep redis-server
sudo kill <PID>

2.2 方式二:后台启动(守护进程启动)

通过配置文件的 daemonize yes 实现后台运行,这是最常用的启动方式。

# 确保配置文件中 daemonize yes
grep "daemonize" /etc/redis/redis.conf

# 使用配置文件启动
redis-server /etc/redis/redis.conf

# 检查是否启动成功
ps aux | grep redis-server
redis-cli ping

创建系统服务文件(推荐):​

创建systemd服务文件 /etc/systemd/system/redis.service

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
PIDFile=/var/run/redis.pid
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

启用并启动Redis服务:

# 重新加载systemd配置
sudo systemctl daemon-reload

# 启用开机自启
sudo systemctl enable redis

# 启动Redis服务
sudo systemctl start redis

# 检查服务状态
sudo systemctl status redis

# 查看日志
sudo journalctl -u redis -f

服务管理命令:​

# 启动
sudo systemctl start redis

# 停止
sudo systemctl stop redis

# 重启
sudo systemctl restart redis

# 查看状态
sudo systemctl status redis

# 禁用开机自启
sudo systemctl disable redis

特点:​

  • ✅ 后台稳定运行
  • ✅ 可通过系统服务管理
  • ✅ 支持开机自启
  • ✅ 适合生产环境
  • ❌ 需要root权限进行服务管理

2.3 方式三:使用Redis启动脚本

Redis源码包中自带了启动脚本,可以方便地管理Redis实例。

# 进入Redis源码 utils 目录
cd /usr/local/src/redis-7.2.4/utils

# 执行安装脚本
sudo ./install_server.sh

执行脚本后会进入交互式配置:

Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the redis data directory name [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/redis/6379.conf
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

管理多个Redis实例:​

# 查看已安装的Redis实例
sudo service redis_6379 status

# 启动特定实例
sudo service redis_6379 start

# 停止特定实例
sudo service redis_6379 stop

# 重启特定实例
sudo service redis_6379 restart

自定义启动脚本示例:​

创建自定义启动脚本 /usr/local/bin/redis-start

#!/bin/bash

# Redis启动脚本
REDIS_DIR="/etc/redis"
REDIS_CONF="$REDIS_DIR/redis.conf"
REDIS_LOG="/var/log/redis/startup.log"
REDIS_PID="/var/run/redis.pid"

case "$1" in
    start)
        echo "Starting Redis..."
        if [ -f $REDIS_PID ]; then
            echo "Redis is already running (PID: $(cat $REDIS_PID))"
            exit 1
        fi
        redis-server $REDIS_CONF >> $REDIS_LOG 2>&1 &
        echo "Redis started. Check $REDIS_LOG for details."
        ;;
    stop)
        echo "Stopping Redis..."
        if [ ! -f $REDIS_PID ]; then
            echo "Redis is not running"
            exit 1
        fi
        redis-cli shutdown
        echo "Redis stopped."
        ;;
    restart)
        $0 stop
        sleep 2
        $0 start
        ;;
    status)
        if [ -f $REDIS_PID ]; then
            echo "Redis is running (PID: $(cat $REDIS_PID))"
        else
            echo "Redis is not running"
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

exit 0

给脚本执行权限:

sudo chmod +x /usr/local/bin/redis-start

使用自定义脚本管理:

# 启动
sudo redis-start start

# 停止
sudo redis-start stop

# 重启
sudo redis-start restart

# 查看状态
sudo redis-start status

特点:​

  • ✅ 支持多实例管理
  • ✅ 灵活的自定义配置
  • ✅ 适合需要运行多个Redis实例的场景
  • ✅ 脚本化管理,操作简单
  • ❌ 需要额外的配置和管理

三、验证安装和连接测试

3.1 基本连接测试

# 连接Redis
redis-cli

# 如果设置了密码,需要认证
127.0.0.1:6379> AUTH your_strong_password_here
OK

# 测试连接
127.0.0.1:6379> PING
PONG

# 设置和获取值
127.0.0.1:6379> SET test_key "Hello Redis"
OK
127.0.0.1:6379> GET test_key
"Hello Redis"

# 退出
127.0.0.1:6379> QUIT

3.2 远程连接测试

# 从另一台机器连接
redis-cli -h your_redis_server_ip -p 6379 -a your_password

# 测试远程连接
redis-cli -h your_redis_server_ip -p 6379 PING

四、防火墙配置

如果需要在远程访问Redis,需要配置防火墙:

# Ubuntu/Debian (使用ufw)
sudo ufw allow 6379
sudo ufw enable

# CentOS/RHEL (使用firewalld)
sudo firewall-cmd --permanent --add-port=6379/tcp
sudo firewall-cmd --reload

# 或者只允许特定IP访问
sudo ufw allow from your_client_ip to any port 6379

五、总结与选择建议

启动方式适用场景优点缺点
直接启动开发测试简单快速不稳定,不适合生产
后台启动(系统服务)​生产环境稳定可靠,易管理需要root权限
启动脚本多实例管理灵活,支持多实例配置相对复杂

推荐选择:​

  • 开发环境​:使用直接启动方式
  • 生产环境​:使用系统服务方式(方式二)
  • 多实例需求​:使用启动脚本方式(方式三)

通过以上步骤,您可以在Linux系统上成功安装Redis,并根据实际需求选择合适的启动方式来管理Redis服务。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞87 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容