缓存服务器(游戏服务架构-缓存服务器)
缓存是指将用户需要频繁访问的优秀资源的 *** 内容存储在离用户更近、访问速度更快的系统中,以提高内容的访问速度的一种技术。缓存是存储频繁访问的内容的服务器。
上面的说法很通俗。在具体的项目架构中,缓存服务往往是指将一些用户经常访问的资源放入内存中。收到数据后,数据会迅速返回给用户。简单举个悠游资源网的例子。
通过上面的模型我们可以看出,在用户数量较少的情况下,这个访问速度是可以接受的。但是当用户数量上来的时候,可能会对服务器造成致命的打击。大家都知道查询数据库或者读取文件是一个非常耗时的操作。用户数量少的时候,你可能感觉不到速度。但是你想想,当有几千个用户的时候,会导致数据库拥塞,导致这个服务宕机。
在上述模型中,我们很容易想到以下解决方案:1。增加数据库的配置,满足更多用户的同时访问;2.想办法在登录服务器和数据库之间加一个缓存层,这样就可以把用户的热数据放到内存中,而不用每次都请求数据库。
之一种方案仔细想想并不可行,因为硬件资源有限。我们不能无限制地增加数据库的配置来满足我们的需求。
第二个方案是我们迄今为止想到的更好的解决方案。我们可以通过软件问题来解决一些硬件问题。所以这个请求会变成下图。
上图可以说是我目前能想到的更好的解决方案了。当用户在没有数据的情况下访问缓存服务时,将从数据库服务中提取数据,而缓存将留在缓存服务中。下次用户访问它时,它将直接从缓存服务返回给用户。因为数据都在内存里,所以速度会很快。
但是,这个时候可能会有人看到问题,就是数据的一致性问题,因为缓存和数据库中都存在相同的数据。因此,我认为这方面的现行计划是更好的,但不是更好的。将数据存储在多个地方肯定会增加数据不一致的风险,这可能就是鱼和熊掌不可兼得的原因。但是目前用起来肯定是利大于弊的。因为可以服务更多的用户。数据的一致性我们可以想出很多方案来尽可能的减少数据的不一致性。
但是,缓存服务对于长期不变的数据来说,绝对是一把利器。比如我们在游戏中的排名根本不需要实时变化。而且这个数据是热点数据,查询量很大。这时,我体验到了缓存服务的乐趣。
现在比较成熟的数据服务器是redis和Memcache。这两种服务各有利弊,大家可以根据自己的项目来选择。还有一种自我实现。但是需要注意的是,不能乱用。比如我们都知道,这种做法其实就是在空之间交换时间,而这里的空大多指的是内存,也是硬件,所以一定不能无线扩展。因此,我们必须设置消除策略来释放内存。在许多情况下,您需要根据自己的业务定制Youyou的消除策略。比如我们的用户信息在内存中缓存6个小时,这是通过分析我们的用户行为得到的数据。所以大家一定要把握好这个度。
写了这么多,其实是告诉你,项目架构的进化是从需求进化而来的。在实现业务功能时,您可以考虑得更多。上面的模型实际上是一个非常简单的项目模型。在实际项目中,我们还会有二级缓存、三级缓存等等。在开发一个游戏服务器的时候,可以得到多个数据,不然整个游戏体验会觉得特别。
本文地址:百科生活频道 https://www.neebe.cn/live/940174.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!