为discord bot在内存中存储数据



我有一个小问题,不知道这是不是一个愚蠢的问题。当为一个将在多个应用程序中使用的discord bot编写一些逻辑时,您经常会遇到是否应该存储一些全局变量或在函数中存储一些全局变量的问题。我的问题是,这种数据存储在内存中,会导致内存问题,因为机器人将在多个服务器中使用?

不可能导致"内存问题",可以这么说。如果每次用户使用命令时(即使来自不同的公会),你都将公会的数据保存到一个变量中,那么旧的值就会被新公会的数据完全覆盖。

如果你问的是来自不同公会的数据是如何同时存储的,那么你的答案是,discord.js客户端只是在client.guilds.cache属性中存储bot所在的每个公会数据的副本。如果你想获得某个公会的数据,你可以简单地使用client.guilds.cache.get(guildId)

当然,请注意,当您在内存中存储任何东西时,当您关闭bot时数据将丢失。这就是@Elitezen所说的;为了在会话之间持久化数据,你需要一个专用的数据库。

最新更新