阿里云ECS 2核3G宝塔面板安装NodeBB:Redis数据库方案血泪避坑实录(附重启不丢数据秘籍) - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

阿里云ECS 2核3G宝塔面板安装NodeBB:Redis数据库方案血泪避坑实录(附重启不丢数据秘籍)

各位老铁,上一篇我们聊了MongoDB,今天咱们换个口味——纯Redis跑NodeBB。别一听Redis就慌,“重启会不会丢数据”?先给你吃颗定心丸:只要你把持久化配好,Redis重启后NodeBB的数据不会丢!下面全程不Docker,宝塔9.x+Debian12.6亲测有效,记得点赞收藏。


目录

  1. 宝塔一键装Redis7.4?别急着点“完成”
  2. 配置Redis持久化:RDB+AOF双保险
  3. NodeBB安装:用Redis做主库
  4. 性能优化三板斧:内存、连接、淘汰策略
  5. 重启服务器后数据还在吗?实测给你看
  6. 常见问题FAQ

1. 宝塔一键装Redis7.4?别急着点“完成”

宝塔商店里Redis7.4确实一键安装,但默认没开持久化,重启就真“回归出厂”。

  1. 软件商店→搜索Redis→安装7.4.x
  2. 安装完先设置密码:Re@NodeBB_2025
  3. “性能调整”,先把maxmemory改成512mb,别让它吃光你的3G内存。
  4. 保存后重启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. 性能优化三板斧:内存、连接、淘汰策略

  1. 内存封顶:在宝塔Redis面板把maxmemory 512mb锁死。
  2. 连接池:NodeBB根目录config.json加:
    
    "redis": {
      "host": "127.0.0.1",
      "port": "6379",
      "password": "Re@NodeBB_2025",
      "database": 0,
      "options": {
        "maxRetriesPerRequest": 3,
        "retryDelayOnFailover": 100
      }
    }
    
  3. 淘汰策略:宝塔面板→Redis→配置文件末尾加:
    maxmemory-policy allkeys-lru

5. 重启服务器后数据还在吗?实测给你看

先说结论:只要你按第2步把RDB+AOF都开了,重启后数据100%在!

实测流程:

  1. NodeBB里发3篇帖子 → 正常显示
  2. 宝塔→重启服务器 → 等待2分钟
  3. 浏览器访问https://bbs.example.com → 帖子仍在
  4. 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就搞定了。如果你还是踩坑,评论区见,咱们一起继续吐槽!

请登录后发表评论

    没有回复内容

万事屋新帖