缓存服务器(游戏服务架构缓存)

/ 0评 / 0

缓存服务器(游戏服务架构缓存)

缓存是指将频繁访问的网络内容存储在离用户更近、访问速度更快的系统中,以提高内容访问速度的技术。缓存服务器是存储经常访问的内容的服务器。

以上说法是通俗的说法。在具体的项目架构中,缓存服务,通常被称为技术资源网络,将用户经常访问的一些资源放入内存中。接收到数据被迅速返回给用户。举个简单的例子。

通过上面的模型,我们可以看到,当用户数量少的时候,访问速度还是可以收到的。但是当用户数量上来的时候,可能会对服务器造成致命的打击。每个人都知道查询数据库或读取文件是一项非常耗时的操作。当用户数量少的时候,你可能感觉不到速度。但是如果你仔细想想,当用户数以千计时,就会导致数据库拥塞,从而导致这项服务的宕机。

在上面的模型中,我们可以很容易地想到解决方案:1。增加数据库的配置,满足更多用户的同时访问;2.想办法在登录服务器和数据库之间增加一个缓存层,将用户的热门数据放入内存中,不需要每次都需要数据库。

第一个方案仔细想想是行不通的,因为硬件资源有限。我们不能无限增加数据库的配置来满足我们的需求。

第二个计划是我们到目前为止想到的最好的解决方案。我们可以通过软件问题解决一些硬件问题。所以这个要求会变成下图。

上图可以说是我目前能想到的最好的解决方案。当用户在没有数据的情况下访问缓存服务时,他们将从数据库服务中提取数据,同时将缓存留在缓存服务中。用户下次访问缓存服务时,会直接返回给用户,因为数据在内存中,所以速度会很快。

但是,在这个时候,有些人可能会看到问题,那就是数据一致性问题,因为缓存和数据库中存在相同的数据。所以我说目前这方面的计划是最好的,但不是最好的。将数据存储在多个位置肯定会增加数据不总是可用的风险,这可能是因为您不能同时拥有数据。然而,我们目前用它来确定利大于弊。因为它可以服务更多的用户。我们可以想出许多尽可能减少数据不一致性的方案。

但是,缓存服务绝对是长期不变的数据武器。比如我们在游戏中的排行榜基本不需要实时更换。而且这个数据是热门数据,有大量的查询。这时,我体验到了缓存服务带来的乐趣。

目前比较成熟的数据服务器有redis、Memcache等,各有利弊。可以根据自己的项目选择。还有一种自我实现。然而,我们应该注意的是,在应用它时,我们不能滥用它。比如我们都知道这种做法实际上是在改变空之间的时间,其中空大部分是指内存,也是硬件,所以肯定不能无线扩展。因此,我们必须设定一个好的消除策略来释放记忆。在很多情况下,需要根据技术资源网络本身的业务定制这种淘汰策略。例如,我们的用户信息在内存中缓存6小时,这是通过fire分析我们的用户动作后获得的数据。所以一定要把握好这个度。

写这么多,其实就是告诉大家,项目架构的演变,都是从需求演变而来的。当您实施业务技术资源网络时,您可以考虑更多。上述模型实际上是一个非常简单的项目模型。在实际项目中,我们还会看到L2缓存、L3缓存等等。当开发游戏服务器关闭时,用户可以获得许多数据,否则所有的游戏体验都会感觉很特别。