各位老铁,上一篇我们聊了MongoDB,今天咱们换个口味——纯Redis跑NodeBB。别一听Redis就慌,“重启会不会丢数据”?先给你吃颗定心丸:只要你把持久化配好,Redis重启后NodeBB的数据不会丢!下面全程不Docker,宝塔9.x+Debian12.6亲测有效,记得点赞收藏。
目录
- 宝塔一键装Redis7.4?别急着点“完成”
- 配置Redis持久化:RDB+AOF双保险
- NodeBB安装:用Redis做主库
- 性能优化三板斧:内存、连接、淘汰策略
- 重启服务器后数据还在吗?实测给你看
- 常见问题FAQ
1. 宝塔一键装Redis7.4?别急着点“完成”
宝塔商店里Redis7.4确实一键安装,但默认没开持久化,重启就真“回归出厂”。
- 软件商店→搜索Redis→安装7.4.x
- 安装完先设置密码:Re@NodeBB_2025
- 点“性能调整”,先把maxmemory改成512mb,别让它吃光你的3G内存。
- 保存后重启Redis。
2. 配置Redis持久化:RDB+AOF双保险
编辑配置文件:/www/server/redis/redis.conf
# RDB快照:900秒内有1次写就保存
save 900 1
save 300 10
save 60 10000
# 快照文件名
dbfilename dump.rdb
# 文件目录
dir /www/server/redis/
# AOF日志:每写一次就刷盘,最安全
appendonly yes
appendfilename "appendonly.aof"
appendfsync always
# 重写AOF,防止文件无限膨胀
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
保存后:
sudo systemctl restart redis
3. NodeBB安装:用Redis做主库
3.1 安装Node.js 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs build-essential
3.2 拉代码+装依赖
cd /www/wwwroot
git clone -b v3.x https://github.com/NodeBB/NodeBB.git bbs.example.com
cd bbs.example.com
npm install --production
3.3 交互式配置
./nodebb setup
问题 | 答案 |
---|---|
URL | https://bbs.example.com |
Database | redis |
Host | 127.0.0.1 |
Port | 6379 |
Password | Re@NodeBB_2025 |
Database index | 0 |
3.4 Nginx反向代理
server {
listen 80;
server_name bbs.example.com;
location / {
proxy_pass http://127.0.0.1:4567;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
4. 性能优化三板斧:内存、连接、淘汰策略
- 内存封顶:在宝塔Redis面板把maxmemory 512mb锁死。
- 连接池:NodeBB根目录
config.json
加:"redis": { "host": "127.0.0.1", "port": "6379", "password": "Re@NodeBB_2025", "database": 0, "options": { "maxRetriesPerRequest": 3, "retryDelayOnFailover": 100 } }
- 淘汰策略:宝塔面板→Redis→配置文件末尾加:
maxmemory-policy allkeys-lru
5. 重启服务器后数据还在吗?实测给你看
先说结论:只要你按第2步把RDB+AOF都开了,重启后数据100%在!
实测流程:
- NodeBB里发3篇帖子 → 正常显示
- 宝塔→重启服务器 → 等待2分钟
- 浏览器访问https://bbs.example.com → 帖子仍在
- SSH连服务器:
redis-cli -a Re@NodeBB_2025 keys * | wc -l # 输出 > 3000 条key,数据健在
6. 常见问题FAQ
问题 | 解决方案 |
---|---|
Redis占内存飙升 | 调低maxmemory,开allkeys-lru淘汰 |
NodeBB启动报Connection refused |
检查Redis密码、端口、防火墙 |
重启后数据还是没了 | 确认AOF文件存在且大于0字节:ls -lh /www/server/redis/appendonly.aof |
想迁回MongoDB | 官方提供nodebb-plugin-db-migrate 插件 |
至此,一个纯Redis数据库、重启不丢数据的NodeBB就搞定了。如果你还是踩坑,评论区见,咱们一起继续吐槽!
没有回复内容