Skip to content

Redis

Redis 是一个用于数据缓存及跨服通信的服务器。HuskSync 需要至少 5.0+ 的 Redis 才可与数据库搭配使用。这里有很多种方式安装或获取 Redis 服务器。

为了达到最佳预期,我们建议为本地运行(与其他服务器一并运行)的 Redis 服务器分配 1GB 运行内存。如果你有多台机器,则请在你运行了 Velocity/BungeeCord/Waterfall 的服务器上安装 Redis。

什么是 Redis?

RedisREmote DIctionary Server,远程字典服务)是一个开源、内存加载数据的存储服务器,可用作缓存、通信断点、流数据引擎或数据库。

HuskSync 需要 Redis,并使用它在玩家切换服务器及主/副通信执行管理员操作(如通过 /invsee 命令 更新其他服务器上玩家的数据)时缓存数据。见“常见问题”章节获取更多信息。

配置

若要配置 Redis,找到你的 config.yml,并修改 redis 部分下的内容。将 broker_type 设置为 REDIS

数据库选项(config.yml)
YAML
# Redis 设置
redis:
  # 在此指定 Redis 服务器的登录凭证。若未设置登录密码,则将 "password" 项留空
  credentials:
    host: localhost
    port: 6379
    password: ''
    use_ssl: false
  # Redis 哨兵模式相关设置。请勿擅自修改,否则后果自负!
  sentinel:
    # 哨兵模式的主节点名称
    master: ''
    # 地址:端口列表
    nodes: []
    password: ''

凭据

在你的 Redis 上输入域名、端口及默认的用户密码。

如果你的 Redis 默认用户没有密码,则将其留空(password: ''),之后插件就会尝试不带密码连接数据库。

默认用户密码

取决于你安装的 Redis 版本,它有可能设置随机默认用户密码。你可以在 Redis 的服务器配置中找到这些。你可以在 redis-cli 中通过如下命令清理默认用户的密码。

bash
requirepass thepassword
user default on nopass ~* &* +@all

使用 Redis 哨兵

若你在使用 Redis 的哨兵模式,可以在 sentinel 部分下进行设置。

你需要提供主集合的名称,哨兵的密码及按 地址:端口 格式填写的列表。

获取 Redis 服务器

使用 HuskSync 必须使用 Redis 服务器。在不同服务器上获取 Redis 的教程可以在下文找到。HuskSync 已经过 Redis 公开包调试,但应该也可以和其他分支的 Redis 或相关软件兼容。

为了达到最佳预期,我们建议为本地运行(与其他服务器一并运行)的 Redis 服务器分配 1GB 运行内存。如果你有多台机器,则请在你运行了 Velocity/BungeeCord/Waterfall 的服务器上安装 Redis。

若你正在使用服务器托管

联系服务器提供商并请求其为你搭建 Redis。你可以向他们提供本页面的相关描述。如果还在找支持 Redis 的服务器提供商,我们的服务器提供商列表中提到了有关内容。

如果你的服务器提供商没有提供 Redis,你就需要考虑 HuskSync 是否真的适合你了。如果你仍然需要 HuskSync,你可以选择通过 DigitalOcean 等机构租赁外部的 Redis 服务器,尽管我们不推荐这么做,这会导致游戏服务器及缓存之间的延迟增加,从而影响同步性能。

在 Linux 或 macOS 上的 Redis

你可以在 Linux 的分发上安装 Redis。Redis 在大多数包管理仓库中都可以找到。

你也可以在你的 macOS 服务器上安装 Redis

在 Windows 上的 Redis

Windows 并不受到 Redis 的官方支持,但这里有一些非官方移植,你可以将其安装在 Windows 系统上,它运行良好。

如果你喜欢,你也可以通过 WSL 安装 Redis

Pterodactyl(翼龙面板)/ Pelican 面板托管

如果你在翼龙或 Pelican 面板上托管服务器,你也需要安装 Redis,并可以将其应用于服务器上的 HuskHomes。

如果你正在同一节点上运行 Redis 和服务器,你需要以 172.18.0.1 为地址(或其他等价设置,取决于你的网络设置),并将其在 Redis 的配置中绑定(nano /etc/redis/redis.conf)。

你也需要将 requirepass 部分的配置取消注释,并为其设置一个密码使得其能被访问,或禁用 protected-mode 设置。在设置密码并通过命令 systemctl restart redis 重启 Redis 服务器后,你也需要在你的翼龙面板 .env 中更新密码(nano /var/www/pterodactyl/.env)并通过 cd /var/www/pterodactyl && php artisan config:clear 刷新缓存。

你也可能也需要在 Linux 分发的防火墙上放行特定连接。