Ubuntu 上 Redis 安装和使用详细指南(新手友好版)

Ubuntu 上 Redis 安装和使用详细指南(新手友好版)

大家好~ 今天给大家带来一篇 Ubuntu 系统下 Redis 的完整安装、配置与使用指南,不管你是刚接触 Linux 的新手,还是需要快速部署 Redis 的开发者,这篇文章都能帮你少走弯路,从头到尾搞定 Redis 环境搭建和基础使用。

先简单介绍下 Redis:Redis(Remote Dictionary Server)是一款开源、高性能的基于内存的键值对数据库,支持字符串、哈希、列表、集合等多种数据结构,常被用作缓存、消息中间件和分布式锁,性能优异,广泛应用于现代 Web 应用中,是后端开发必备的工具之一✨

本文适配 Ubuntu 20.04 / 22.04 / 24.04 LTS 版本(最常用的稳定版),涵盖 3种安装方式(APT 仓库安装、官方源安装、Docker 安装),以及配置优化、服务管理、基础命令、常见问题排查,全程图文式步骤,跟着操作就能成功。

一、前置准备

在安装任何软件前,建议先更新系统软件包索引,确保获取最新的版本和安全补丁,避免安装过程中出现依赖冲突。

打开 Ubuntu 终端(快捷键 Ctrl+Alt+T),执行以下命令:

bash 复制代码
# 更新软件包索引
sudo apt update
# 可选:升级已安装的软件包(推荐执行,提升系统稳定性)
sudo apt upgrade -y

提示:输入命令后需要输入当前用户的密码(输入时不显示明文,正常输入即可),确认权限后等待执行完成。

二、Redis 安装(3种方式,按需选择)

推荐新手优先选择 方式1(APT 仓库安装),最简单快捷;需要最新版本 Redis 选择方式2;开发/测试环境推荐方式3(Docker 安装),隔离性好,卸载方便。

方式1:APT 仓库安装(最推荐,新手首选)

Ubuntu 官方仓库中已包含 Redis 稳定版(通常为 Redis 6 或 7 版本),无需额外配置,直接通过 apt 命令即可完成安装,且安装后会自动配置服务、设置开机自启。

  1. 执行安装命令:
    sudo apt install redis-server -y"-y" 参数表示自动确认安装,无需手动输入 y 确认,节省操作步骤。

  2. 安装完成后,检查 Redis 服务状态,确认是否正常启动:
    sudo systemctl status redis-server如果输出中出现 active (running),说明 Redis 已成功启动(如下所示),恭喜你,安装第一步完成!● redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2026-03-13 17:00:00 CST; 1min ago Main PID: 1234 (redis-server) Tasks: 4 (limit: 4915) Memory: 2.1M CGroup: /system.slice/redis-server.service └─1234 /usr/bin/redis-server 127.0.0.1:6379

方式2:官方源安装(获取最新稳定版)

如果官方仓库的 Redis 版本较低,需要安装最新稳定版(如 Redis 8.x),可以通过 Redis 官方提供的源进行安装,步骤如下:

  1. 安装依赖工具(用于添加官方源和验证密钥):
    sudo apt install lsb-release curl gpg -y

  2. 导入 Redis 官方 GPG 密钥(用于验证软件包完整性):
    curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

  3. 添加 Redis 官方源到系统软件源列表:
    echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

  4. 更新软件包索引,安装 Redis:
    sudo apt update sudo apt install redis -y

  5. 验证安装和启动状态(同方式1,执行 sudo systemctl status redis,确认显示 active (running))。

方式3:Docker 安装(开发/测试环境首选)

如果你的环境已安装 Docker,推荐使用 Docker 安装 Redis,无需担心依赖冲突,且可以快速启停、删除容器,适合临时测试或多版本切换。

  1. 确保 Docker 已安装(若未安装,执行以下命令快速安装):
    `sudo apt install docker.io -y

启动 Docker 服务并设置开机自启

sudo systemctl start docker

sudo systemctl enable docker`

  1. 拉取 Redis 官方镜像(默认拉取最新稳定版):
    docker pull redis

  2. 启动 Redis 容器(映射端口、设置密码,避免暴露无密码 Redis):
    # 启动容器,映射本地 6379 端口到容器 6379 端口,设置密码为 MyRedisPass123!@# docker run -d -p 6379:6379 --name redis-demo redis --requirepass "MyRedisPass123!@#"参数说明:

    • -d:后台运行容器

    • -p 6379:6379:端口映射,本地端口:容器端口(Redis 默认端口为 6379)

    • --name redis-demo:给容器命名,方便后续管理

    • --requirepass "xxx":设置 Redis 访问密码,提升安全性

  3. 验证容器是否启动成功:
    docker ps如果输出中包含 redis-demo 容器,且 STATUS 为 Up,说明启动成功。

三、Redis 基础配置(必做优化,提升安全性和稳定性)

安装完成后,默认配置可能无法满足生产或日常使用需求(如无密码、仅本地访问、内存无限制等),需要对 Redis 配置文件进行简单优化,以下是核心配置项修改(以 APT 安装为例,配置文件路径为 /etc/redis/redis.conf)。

1. 备份配置文件(重要!)

修改配置前,建议先备份原配置文件,避免误操作导致 Redis 无法启动:

bash 复制代码
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak

后续如果配置出错,可通过以下命令恢复备份:

bash 复制代码
sudo cp /etc/redis/redis.conf.bak /etc/redis/redis.conf

2. 编辑配置文件

使用文本编辑器打开配置文件,推荐使用 nano(简单易操作)或 vim:

bash 复制代码
# 使用 nano 编辑(若未安装 nano,执行 sudo apt install nano -y)
sudo nano /etc/redis/redis.conf

打开后,通过方向键导航,找到以下配置项并修改(按 Ctrl+W 可搜索关键词,快速定位)。

3. 核心配置项修改(重点)

  1. 设置 Redis 与 systemd 集成(便于服务管理)

    找到 supervised 指令,将其修改为:supervised systemd作用:让 Redis 与 Ubuntu 系统的 systemd 服务管理器集成,方便通过 systemctl 命令管理(如重启、停止、查看日志)。

  2. 设置访问密码(强烈推荐,防止未授权访问)

    找到 requirepass 指令(默认被注释,前面有 #),取消注释并设置强密码:requirepass MyRedisPass123!@#注意:密码建议包含大小写字母、数字和特殊符号,避免简单密码(如 123456),防止被暴力破解。

  3. 限制内存使用(避免内存溢出)

    找到 maxmemory 指令(默认被注释),取消注释并设置最大内存(根据自身服务器内存调整,如 1GB):maxmemory 1gb同时设置内存淘汰策略(内存满时自动删除过期/不常用的键),找到 maxmemory-policy,修改为:maxmemory-policy allkeys-lru作用:当 Redis 内存达到上限时,优先删除最近最少使用(LRU)的键,保证服务正常运行。

  4. (可选)允许远程访问(谨慎操作!)

    默认情况下,Redis 只监听本地 IP(127.0.0.1),仅限本机访问。如果需要远程连接(如其他服务器访问),需修改绑定 IP:找到 bind 127.0.0.1 ::1,修改为:# bind 127.0.0.1 ::1注释掉该行,表示监听所有网络接口(允许所有 IP 访问)。⚠️ 警告:开放远程访问后,务必设置强密码,并配置防火墙限制访问 IP,否则可能被恶意攻击!

  5. (可选)启用 AOF 持久化(提升数据安全性)

    Redis 默认启用 RDB 持久化(定时快照),但 AOF 持久化(追加日志)更安全,可避免数据丢失。找到以下配置项,修改为:`appendonly yes

    appendfilename "appendonly.aof"

每秒同步一次(推荐,平衡性能和安全性)

appendfsync everysec`

4. 保存配置并重启 Redis 服务

修改完成后,按 Ctrl+O 保存文件,按 Ctrl+X 退出 nano 编辑器。

重启 Redis 服务,使配置生效:

bash 复制代码
sudo systemctl restart redis-server

再次检查服务状态,确认重启成功:

bash 复制代码
sudo systemctl status redis-server

四、Redis 基础使用(命令行操作,新手必学)

Redis 提供了命令行客户端 redis-cli,可直接在终端操作 Redis,以下是最常用的命令,覆盖连接、键值操作、数据结构等核心场景。

1. 连接 Redis 服务

  1. 本地连接(未设置密码):
    redis-cli执行后,进入 Redis 交互模式,提示符为 127.0.0.1:6379>

  2. 本地连接(已设置密码):

    `# 方式1:先连接,再认证

    redis-cli

    127.0.0.1:6379> auth MyRedisPass123!@# # 输入设置的密码,返回 OK 表示认证成功

方式2:连接时直接认证(不推荐,密码会暴露在历史记录中)

redis-cli -a MyRedisPass123!@#`

  1. Docker 容器内连接:# 进入 Redis 容器,直接连接客户端(已包含密码认证) docker exec -it redis-demo redis-cli -a MyRedisPass123!@#

2. 基础测试命令

连接成功后,先执行 ping 命令,测试 Redis 服务是否正常响应:

bash 复制代码
127.0.0.1:6379> ping
PONG

返回 PONG,说明连接正常,Redis 服务运行正常。

3. 核心命令操作(重点)

Redis 支持多种数据结构,以下是最常用的命令,结合示例说明,新手可直接复制执行。

(1)键(Key)管理命令
bash 复制代码
# 查看所有键(生产环境慎用,数据量大时会卡顿)
keys *

# 判断键是否存在(返回 1 存在,0 不存在)
exists name

# 查看键的剩余生存时间(ttl: time to live,单位秒)
# 返回 -1:永不过期;-2:键不存在;正数:剩余秒数
ttl name

# 设置键的过期时间(单位秒,如 30 秒后过期)
expire name 30

# 删除指定键(可删除多个,用空格分隔)
del name age

# 查看键的数据类型
type name
(2)字符串(String)操作(最常用)

字符串是 Redis 最基础的数据类型,可存储字符串、数字、二进制数据,适合缓存用户信息、验证码、计数器等场景。

bash 复制代码
# 设置键值对(覆盖已有键)
set name "Redis is awesome!"

# 获取键值
get name

# 批量设置键值对
mset age 20 gender male

# 批量获取键值
mget name age

# 数字自增 1(适合计数器,如文章阅读量)
incr count

# 数字自减 1
decr count

# 原子性设置值 + 过期时间(如 60 秒有效,适合验证码)
setex code 60 123456
(3)哈希(Hash)操作(适合存储对象)

哈希适合存储结构化数据(如用户、商品信息),相当于"键值对中的键值对",支持单独修改某个字段,无需整体更新。

bash 复制代码
# 设置哈希字段值(如存储用户信息,key 为 user:1001)
hset user:1001 name 张三 age 20

# 获取哈希指定字段值
hget user:1001 name

# 批量获取哈希字段值
hmget user:1001 name age

# 获取哈希所有字段和值
hgetall user:1001

# 删除哈希指定字段
hdel user:1001 age
(4)其他常用命令
bash 复制代码
# 切换数据库(Redis 默认有 16 个数据库,下标 0-15)
select 1  # 切换到 1 号数据库

# 查看当前数据库中键的数量
dbsize

# 清空当前数据库所有数据(谨慎使用!)
flushdb

# 清空所有数据库数据(危险!生产环境禁止使用)
flushall

# 退出 Redis 客户端
exit 或 quit

五、Redis 服务管理(常用命令)

通过 systemctl 命令可快速管理 Redis 服务(启动、停止、重启、设置开机自启等),适用于 APT 或官方源安装的 Redis。

bash 复制代码
# 启动 Redis 服务
sudo systemctl start redis-server

# 停止 Redis 服务
sudo systemctl stop redis-server

# 重启 Redis 服务(修改配置后必须执行)
sudo systemctl restart redis-server

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

# 设置 Redis 开机自启(默认已开启,可重新确认)
sudo systemctl enable redis-server

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

# 查看 Redis 服务日志(排查故障用)
sudo journalctl -u redis-server

六、常见问题排查(新手必看)

安装或使用过程中遇到问题,可参考以下排查方法,快速解决。

问题1:Redis 服务启动失败

症状:执行 sudo systemctl status redis-server 显示 failed

解决方法:

  1. 查看日志,定位错误原因:
    sudo journalctl -u redis-server

  2. 常见原因及解决:

    • 配置文件错误:恢复备份的配置文件,重新修改(参考第三步)。

    • 端口被占用:查看 6379 端口是否被其他程序占用,关闭占用程序或修改 Redis 端口(在 redis.conf 中修改 port 配置)。

      `# 查看 6379 端口占用情况

      sudo lsof -i:6379

    关闭占用进程(替换 1234 为进程 ID)

    sudo kill -9 1234`

    • 权限不足:确保 Redis 数据目录(/var/lib/redis)的权限正确,执行以下命令修复:
      sudo chown -R redis:redis /var/lib/redis

问题2:无法远程连接 Redis

症状:远程客户端无法连接 Ubuntu 上的 Redis,提示"Connection refused"。

解决方法:

  1. 确认 Redis 配置中已注释 bind 127.0.0.1 ::1(参考第三步)。

  2. 确认 Redis 已设置密码,远程连接时需输入密码。

  3. 开放 Ubuntu 防火墙 6379 端口(允许远程访问):

    `# 开放 6379 端口(永久生效)

    sudo ufw allow 6379

启用防火墙(若未启用)

sudo ufw enable

查看防火墙规则

sudo ufw status`

问题3:Redis 密码忘记

解决方法:

  1. 停止 Redis 服务:
    sudo systemctl stop redis-server

  2. 编辑配置文件,注释掉 requirepass 行(取消密码验证)。

  3. 重启 Redis 服务,无密码连接:
    sudo systemctl restart redis-server redis-cli

  4. 重新设置密码(无需重启服务):
    127.0.0.1:6379> config set requirepass 新密码

  5. 编辑配置文件,重新添加 requirepass 新密码,保存并重启服务(确保密码永久生效)。

七、总结

到这里,Ubuntu 上 Redis 的安装、配置、基础使用就全部讲解完成了。总结一下核心要点:

  • 新手优先用 APT 安装,简单快捷;需要最新版本用官方源;开发测试用 Docker 安装。

  • 配置优化重点:设置强密码、限制内存使用、按需开启远程访问和 AOF 持久化。

  • 常用命令:记住 ping、set、get、hset、hget 等核心命令,满足日常使用需求。

  • 遇到问题先看日志,大部分故障都是配置错误或权限、端口问题导致的。

相关推荐
生活很暖很治愈2 小时前
Linux——HTTP协议
linux·服务器·c++·网络协议·ubuntu·http
Nandeska2 小时前
6、认识和使用Redis Stack
java·数据库·redis
**蓝桉**2 小时前
Prometheus时间出现误差
linux·运维·prometheus
vortex52 小时前
文件上传漏洞绕过技术总结(含实操指南与防御方案)
linux·服务器·网络安全·渗透测试
江畔何人初3 小时前
HPA是如何在k8s集群实现自动扩缩容机制的
linux·运维·服务器·云原生·kubernetes
杨云龙UP3 小时前
Oracle 19c RAC多节点运行状态最简排查指南_20260316
linux·运维·服务器·数据库·sql·oracle
于眠牧北3 小时前
ubuntu22.04在docker中安装redis6.2.x并配置远程连接
运维·redis·docker·容器
weixin_452953323 小时前
openclaw新手部署详细教程——适用于ubuntu22.04
linux·人工智能·ubuntu
暴力求解3 小时前
Linux---ELF与库加载
linux·运维·服务器