我正在为我的网页游戏编写一个C#HTTP请求服务器,我正在使用MongoDB作为数据库.在C#应用程序中仍然可以缓存任何内容是否更有效?或者只是为MongoDB做一件事要求更快.我期望每个活跃玩家每分钟有大约十二个选择查询,并...

我正在为我的网页游戏编写一个C#HTTP请求服务器,我正在使用MongoDB作为数据库.在C#应用程序中仍然可以缓存任何内容是否更有效?或者只是为MongoDB做一件事要求更快.我期望每个活跃玩家每分钟有大约十二个选择查询,并且每分钟可能有一个或两个保存/更新查询.
解决方法:
“每个活跃玩家每分钟打十几个选择查询”并没有告诉我们什么.为了实现这一点,我们需要知道活动播放器的数量,每个查询所花费的时间,表结构,使用中的查询(包括返回的数据量),服务器负载的统计数据等等.就像你是否使用Mongo的能力来分割数据库等.
无论如何,在设置任何类型的缓存之前,我强烈建议您从分析系统开始.你需要知道你的瓶颈在哪里,如果有的话.这不是你想象的,你需要硬性和真实的统计数据.
有了这些信息,您就可以确定是否需要
>对您的代码进行细微修复
>实现某种类型的缓存策略
>将数据库服务器分成多个服务器
>重新架构大量代码
>扩大规模(购买更大的服务器)
>甚至修复内部网络问题.
重点是,不要开始缓存内容,希望以后能够提高性能.缓存几乎可以提高性能,因为它会根据大量因素来杀死它.
另外还要补充一点.如果您使用Web场托管请求服务器,则本地缓存数据到每个独立Web服务器所涉及的复杂性和硬件成本会急剧增加.
当尝试将数据缓存在这些计算机的内存中时,由于Web服务器上的内存需求增加,硬件成本会上升.
尝试保持缓存副本同步时复杂性增加,这样它们就不会变得陈旧.我认为游戏需要100%最新的信息.像facebook和其他网站可以有点不同步.当游戏服务器不同步时,它可能会对玩家的可用性产生负面影响.
假设您当前仅部署到单个Web服务器和单个数据库服务器,现在添加缓存功能可能会在您迁移到多个Web服务器和/或多个数据库服务器时给您带来巨大的痛苦.
最后,如果由于某种原因,您只部署到同时托管数据库和Web服务器的单个计算机,则缓存完全是荒谬的.
本文标题为:c# – MongoDB和MySQL一样重要吗?


基础教程推荐
- 使用.Net Core 2.2创建windows服务 2023-09-26
- C#实现获取Excel中图片所在坐标位置 2023-06-04
- unity实现简单贪吃蛇游戏 2023-02-15
- C#四舍五入用法实例 2022-12-09
- Unity调用手机摄像机识别二维码 2023-01-27
- C# DateTime日期比较方法案例详解 2023-04-27
- Unity实现简单手势识别 2023-03-03
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践 2023-09-28
- c# – 等待HttpWebRequest.BeginGetResponse在Windows Phone 7中完成 2023-09-19
- C#:为什么我得到“进程无法访问文件*因为正被另一个进程使用”这段代码? 2023-09-18