搜索

存储与跨服

SQLite / MySQL 持久化、每宠设置保存、正常重启换库与群组配置。

2.2.4 每宠设置与当前存储规则

主动攻击设置按宠物分别写入 SQLite / MySQL,旧宠物默认开启。升级自动补充缺失字段,不删除原档案;召回、重进和正常重启后保留选择。群组服应统一升级 LiPet 版本,继续使用现有数据库与 Redis 配置。

数据库连接设置从 2.2.2 起要求正常重启,/lipet reload 会拒绝在线换库并保持当前运行配置。背包恢复、未确认交易台账和数据库必须一起保留;详细边界见 持久化审计。

本页从 LiPet 0.27.1-SNAPSHOT 完整 Wiki 同步整理;需要连续查阅全部功能时,请返回 LiPet 完整 Wiki。

4. 存储配置

0.27.8 召唤中断与运行时队列

旧版实体任务在受理后、执行前退休时,可能使召唤 Future 长期未完成,并阻塞同一玩家后续操作。0.27.8 补齐任务完成分支,依据本次实际保存的 revision 回滚失败召唤,并在同步依赖错误或查询失败后释放相应占位;已有宠物数据与数据库配置不需重建。

/lipet reload 不重建玩家操作队列,也不是强制清除保存任务的工具。升级应停服备份、替换 Jar 并重启。等待提示不会取消状态操作或提前解除串行保护,避免迟到写入覆盖新的操作;完整根因和验证范围见 召唤无响应修复。

SQLite 单服

storage:
  type: "SQLITE"
  sqlite:
    file: "lipet.db"

SQLite 适合单服,默认启用。宠物、技能、背包、货币等数据会写入 plugins/LiPet/lipet.db。

关服保存等待时间可在主配置调整:

storage:
  shutdown-save-timeout-seconds: 20

建议保持 20 秒以上。LiPet 会先完成活动宠物收回,再排空 SQLite/MySQL 写入队列;若服务器曾崩溃,区块实体载入时会清理未绑定的旧宠物实体,避免再次召回后出现重复实体。

MySQL 群组服

storage:
  type: "MYSQL"
  mysql:
    host: "127.0.0.1"
    port: 3306
    database: "lipet"
    username: "root"
    password: "change-me"
    maximum-pool-size: 10
    connect-timeout-seconds: 10
    socket-timeout-seconds: 30

群组服必须使用 MySQL。每个子服需要设置不同的 server.id,同一组服务器使用相同的 server.group。

connect-timeout-seconds 控制连接失败需要等待多久,范围 1-30 秒;socket-timeout-seconds 控制查询和写入等待响应的时间,范围 1-120 秒。这两个限制用于启动连接与运行查询,避免错误地址长期卡住。

server:
  id: "survival-1"
  group: "main"

更改数据库连接:正常重启

storage.type、SQLite 文件路径和 MySQL 连接、连接池参数变化都需正常重启。/lipet reload 检测到生效目标变化会拒绝本次重载,不连接候选库,不收回当前宠物,也不发布候选运行配置。文件中的编辑保留供下次正常启动读取。

  1. 正常停服,备份 LiPet 数据目录、恢复台账与数据库。
  2. 若确实更换数据库,先按服主管理流程迁移数据,再修改连接设置。
  3. 正常启动,用 /lipet status 核对实际目标,再检查原宠物、背包和余额。

插件不会自动复制两个独立数据库的历史数据。直接指向空库后看到的也是空数据,不应把空库误认作旧档案已删除。server、cluster 与 Redis 通道同样需要重启生效。