在你的服务器上安装 Redis:持久化与常见用途

用 apt 装好 Redis,搞清 RDB/AOF 两种持久化,并从第一天起就设密码、绑定本地、别对公网裸奔。

Redis 是一个内存型键值数据库,读写快、数据结构丰富,常用来做缓存、会话、队列和计数。本文以 Ubuntu/Debian 为例,带你在自己的服务器/VPS 上把它装好、用起来,并把最容易被忽视的安全问题一次讲清。

安装

用系统自带的 apt 安装最省事:

sudo apt update
sudo apt install redis-server

安装后 Redis 会以 systemd 服务运行。常用管理命令:

sudo systemctl enable --now redis-server   # 开机自启并立即启动
sudo systemctl status redis-server         # 查看状态

用自带的命令行客户端 redis-cli 验证连通:

redis-cli ping        # 返回 PONG 即正常
redis-cli set foo bar
redis-cli get foo     # 返回 "bar"

常见用途

  • 缓存:把数据库查询结果、渲染片段暂存到 Redis,配合 EXPIRE 设过期时间,减轻后端压力。
  • 会话(Session):Web 应用把登录会话放进 Redis,多台应用服务器共享,重启也不丢。
  • 队列:用 LPUSH / BRPOP 组成简单的任务队列,做异步处理。
  • 计数与限流:INCR 原子自增,天然适合做访问量统计、点赞数、接口限流。

持久化:RDB vs AOF

Redis 数据在内存里,进程一挂就没了,所以要开持久化。它提供两种方式,可单用也可同时开:

RDB(快照)

按时间间隔把整个数据集 dump 成一个二进制文件(默认 dump.rdb)。文件小、恢复快,但两次快照之间宕机会丢一段数据。默认配置类似:

save 900 1      # 900 秒内至少 1 次写,就存一次
save 300 10
save 60 10000

AOF(追加日志)

把每条写命令追加进日志文件,恢复时重放。数据更安全(可配置每秒 fsync),但文件更大、恢复更慢:

appendonly yes
appendfsync everysec

一般建议:对丢几秒数据不敏感的缓存场景用 RDB;把 Redis 当准数据库、看重数据完整性时,开 AOF 或两者并用。

安全重点:别对公网裸奔

这是最要命的一环。历史上有大量未授权 Redis 被扫描、入侵——攻击者连上无密码的公网 Redis,可写入恶意 key、篡改数据,甚至写 crontab 或 SSH 公钥拿下整台机器。请务必:

1. 绑定本地地址

编辑 /etc/redis/redis.conf,确认只监听回环地址:

bind 127.0.0.1 -::1

只有同机应用才连得上;需要跨机访问,请走内网地址或 SSH 隧道,别监听 0.0.0.0。

2. 设置访问密码

requirepass 你的高强度随机密码

之后客户端需认证:redis-cli -a '你的密码'。

3. 开启保护模式并加防火墙

保持 protected-mode yes(默认开),再用防火墙挡住 6379 端口:

sudo ufw deny 6379

改完配置重启生效:

sudo systemctl restart redis-server

小结

在 Ubuntu/Debian 上 apt install redis-server 就能装好 Redis,用 redis-cli 验证;它适合做缓存、会话、队列和计数。持久化按需选:图快用 RDB,重数据安全用 AOF 或两者并用。而无论怎么用,bind 127.0.0.1 + requirepass + 防火墙挡 6379 是不可省的底线——公网裸奔的 Redis 迟早会被入侵。装好第一件事,就是把这三道防线设好。