我目前管理的游戏每天处理大约 8000 名用户,当前的服务器设置是
VPS: 16GB+8cores+ 160GBSSD.
Handles 8K daily users that are generating 600K daily direct calls to the mysql DB;
The situation is: The game is growing, and server response is slowing down.
所以!我正在寻找避免服务器速度极慢的选项,并将 Memcache 视为一种可行的解决方案,研究它后,我提出了 2 个问题,它们是:
为每个用户存储一个包含所有用户数据的键值(可能是一个大约 100 个字符长的连接字符串),然后每隔一段时间更新数据库,这样安全吗?->这意味着同时拥有数千个密钥。
我们的想法不是要取代 mysql,只是为了在用户会话中协助它并能够时不时地更新数据库,对于这种情况,Sessions 或 Memcache 是否是正确的选择?
答案1
您可以创建相当大的值,但是使用 Redis 会更好。使用 Memcached 时,您只能使用 Key->Value 对,而 Redis 具有更多功能,可以为您提供更多(更好)的解决方案(更像数据库)。
但是 Redis 和 Memcache 都是内存解决方案,因此请确保它们不包含关键任务数据。否则,您可以决定让 Redis 每 xxx 次操作或 x 分钟将其数据库转储到文件上,使用主从复制/集群等。