Ubuntu/CentOS 服务器安装 Redis 超全面指南

苦于现在关于 Redis 的博客教程不太完整,且分散,本人用AI工具的辅助,做了一个汇总,本文详细介绍如何在 Ubuntu/CentOS 服务器上安装、配置和启动 Redis,有完整的操作步骤和常见问题解决方案。由于篇幅限制,CentOS 以及后续部分我放到了主页的另外一篇文章,需要的可以点击主页查看~
Ubuntu/CentOS 服务器安装 Redis 超全面指南(续集)

前言

Redis 是一个开源的高性能键值对数据库,因其出色的性能和丰富的数据结构支持,被广泛应用于缓存、消息队列、实时排行榜等场景。本文将手把手教你在 Ubuntu 服务器上部署 Redis。内容很多很全面,按需要参考使用吧~

一、Ubuntu 系统安装 Redis

1.1 环境准备

本教程基于 Ubuntu 20.04/22.04 LTS 版本,其他版本操作类似。

首先更新系统软件包:

sudo apt update
sudo apt upgrade -y

1.2 安装方式选择

Ubuntu 上安装 Redis 有两种主流方式:

  • APT 包管理器安装(比较快速,日常学习使用安这个就够了)
  • 源码编译安装(对性能要求高可以用这个,可以自定义配置)

1.3 方法一:APT 安装(推荐)

这是最简单的安装方式,适合大多数场景:

# 安装 Redis
sudo apt install redis-server -y

安装完成后,Redis 会自动启动。验证安装:

# 查看 Redis 版本
redis-server --version

# 查看服务状态
sudo systemctl status redis-server

输出类似:

● redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled)
     Active: active (running)

1.4 方法二:源码编译安装

如果需要最新版本或自定义编译选项,可以选择源码安装。

步骤 1:安装编译依赖

sudo apt install build-essential tcl pkg-config libssl-dev -y

步骤 2:下载 Redis 源码

访问 Redis 官网 获取最新版本,这里以 7.2.4 为例:

cd /tmp
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4

步骤 3:编译安装

# 编译
make

# 运行测试(可选,可能需要几分钟)
make test

# 安装到系统目录
sudo make install

步骤 4:配置 Redis

# 创建配置目录
sudo mkdir -p /etc/redis
sudo mkdir -p /var/lib/redis

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

# 创建 Redis 用户
sudo useradd -r -s /bin/false redis

# 设置目录权限
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis

步骤 5:创建 systemd 服务文件

sudo vim /etc/systemd/system/redis.service

写入以下内容:

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

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

重载 systemd 配置:

sudo systemctl daemon-reload

1.5 Ubuntu 启动和管理 Redis

无论使用哪种安装方式,管理命令都是一样的:

# 启动 Redis
sudo systemctl start redis-server  # APT 安装
# 或
sudo systemctl start redis          # 源码安装

# 停止 Redis
sudo systemctl stop redis-server

# 重启 Redis
sudo systemctl restart redis-server

# 查看状态
sudo systemctl status redis-server

# 设置开机自启动
sudo systemctl enable redis-server

# 取消开机自启动
sudo systemctl disable redis-server

1.6 Ubuntu 配置文件说明

APT 安装的文件位置:

  • 配置文件:/etc/redis/redis.conf
  • 日志文件:/var/log/redis/redis-server.log
  • 数据目录:/var/lib/redis
  • PID 文件:/var/run/redis/redis-server.pid

源码安装的文件位置:

  • 配置文件:/etc/redis/redis.conf
  • 日志文件:需在配置文件中指定
  • 数据目录:/var/lib/redis

1.7 Ubuntu 基础配置

编辑配置文件:

sudo vim /etc/redis/redis.conf

重要配置项:

1. 绑定地址

# 默认只允许本地访问
bind 127.0.0.1

# 允许所有 IP 访问(注意安全风险)
bind 0.0.0.0

# 允许特定 IP 访问(推荐)
bind 127.0.0.1 192.168.1.100

不过如果是自己学习使用的话,因为没有什么价值,全部开放就行了,也不用设置密码

2. 端口设置

# 默认端口 6379
port 6379

3. 后台运行

# systemd 管理时设置为 no
daemonize no

# 手动启动时设置为 yes
daemonize yes

4. 密码认证

# 设置访问密码
requirepass your_strong_password_123

学习使用的话,到这里已经可以了

5. 持久化配置

# RDB 快照
save 900 1      # 900 秒内至少 1 个键变化
save 300 10     # 300 秒内至少 10 个键变化
save 60 10000   # 60 秒内至少 10000 个键变化

# AOF 持久化
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

6. 内存管理

# 最大内存限制
maxmemory 2gb

# 内存淘汰策略
maxmemory-policy allkeys-lru

7. 日志配置

# 日志级别:debug, verbose, notice, warning
loglevel notice

# 日志文件路径
logfile /var/log/redis/redis-server.log

修改配置后重启服务:

sudo systemctl restart redis-server

1.8 Ubuntu 防火墙配置

如果需要远程访问 Redis,需要开放端口:

# 使用 UFW
sudo ufw allow 6379/tcp
sudo ufw reload

# 查看规则
sudo ufw status

或者使用 iptables:

sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
sudo iptables-save

1.9 Ubuntu 测试 Redis

本地连接测试:

# 无密码连接
redis-cli

# 有密码连接
redis-cli -a your_password

# 或连接后认证
redis-cli
127.0.0.1:6379> AUTH your_password
OK

基本命令测试:

127.0.0.1:6379> ping
PONG

127.0.0.1:6379> set name "Redis"
OK

127.0.0.1:6379> get name
"Redis"

127.0.0.1:6379> keys *
1) "name"

127.0.0.1:6379> info server
# Server
redis_version:7.2.4
...

127.0.0.1:6379> exit

远程连接测试:

redis-cli -h 192.168.1.100 -p 6379 -a your_password ping

1.10 Ubuntu 常见问题

问题 1:Redis 无法启动

# 查看日志
sudo tail -f /var/log/redis/redis-server.log

# 检查配置文件语法
redis-server /etc/redis/redis.conf --test-memory 1024

问题 2:端口被占用

# 查看端口占用
sudo netstat -tlnp | grep 6379
sudo lsof -i :6379

# 杀死占用进程
sudo kill -9 <PID>

问题 3:连接被拒绝

  • 检查 Redis 是否运行:sudo systemctl status redis-server
  • 检查 bind 配置是否正确
  • 检查防火墙规则
  • 检查密码是否正确

问题 4:内存不足

# 查看内存使用
redis-cli info memory

# 清理数据
redis-cli FLUSHALL

# 调整 maxmemory 配置
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐