我正在开发一个非常繁忙的Web服务,它应该每秒收到数千个请求。我希望每个请求都会更新一个计数器字段。我该怎么做?将计数器保存在数据库中非常重要,因此在服务器死亡的情况下,我不会丢失信息。我已经尝试了以下代码,但这将是一个巨大的瓶颈,每秒数千个请求。你会怎么做?
public void Upload(int organizationId)
{
try
{
lock (UpadateLock)
{
using (var db = new DbContext())
{
Counter counter = db.Counters.Where(c => c.OrganizationId == organizationId).FirstOrDefault();
counter.count++;
db.SaveChanges();
}
}
}
catch (Exception ex)
{
}
}
如果您绝对不能在服务器终止时丢失数据,那么您必须为每个增量写入一个持久性存储。
问题是使用什么商店。
当然可以用SQL来实现。这样一个简单的查询并不太昂贵。您可以对此进行基准测试,看看开销是否可以接受。测量web服务器和SQL服务器上的CPU使用率。还要测量磁盘使用率和事务日志大小。
Redis可能是一个非常好的数据库。众所周知,它速度很快,并且支持服务器端增量。
您还可以通过向多个服务器写入增量(随机选择一个)来横向扩展此工作负载。
您也可以使用任何其他数据存储。如果它本身不支持递增,你可以插入新的行。然后,让一个后台进程定期聚合这些行,这样它们就不会不断累积。
问题内容: 我上了一堂课,想跟踪学生的统计数据。我打算稍后制作一个GUI来处理这些数据。 我的主要问题是:保存和以后检索此数据的最佳方法是什么? 我已经读过关于pickle和JSON的文章,但是我并没有真正了解它们的工作方式(尤其是关于它们如何保存数据的信息,例如哪种格式和位置)。 问题答案: 对于持久性数据(存储有关学生的信息),数据库是一个不错的选择。如前所述,Python附带了Sqlite3
我开始创建一个系统,我(作为目前唯一的用户)将加载一个动态创建的PHP页面,该页面具有
问题内容: 在MySQL数据库中存储IP地址的最佳字段类型和长度是什么? IPv6呢? 问题答案: 将IP存储为,然后使用和功能存储/检索IP地址。 样例代码:
问题内容: 我想知道是否存在某种“标准”用于在数据库中存储美国地址?看来这是一项常见的任务,应该有某种标准。 我正在寻找的是数据库表应如何工作和交互的 特定 模式,已经是第三种标准形式,包括数据类型(MySQL)。一个好的UML文档将起作用。 也许我只是在偷懒,但这是一个非常常见的任务,而且我确信有人发布了在某处进行此操作的有效方法。我只是不知道在哪里寻找,而Google并没有帮助。请指出我的资源
最近我考虑了在MySQL数据库中存储历史数据的最佳实践。目前,每个可版本表都有两列-和,都是类型。具有当前数据的记录的填充了其创建日期。当我更新此行时,我将填充更新日期,并使用添加新记录,与前一行中的相同-简单的操作。但是我知道这个表会非常大,非常快,所以获取数据会非常慢。 我想知道您是否有存储历史数据的实践?
问题内容: 我有一些将数据存储在页面中的表格。我想找到一种方法来临时保存用户在导航中输入的数据,并保持到确认订单为止。谁能帮我? 问题答案: 这正是会议的目的