在你的服务器上安装 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 迟早会被入侵。装好第一件事,就是把这三道防线设好。