0

我有一个 isapi 文件管理器,我想添加一个基于传入域的逻辑(我的服务器场托管许多域)。域列表是动态的,我可以将这些域列表导出到文本文件并从 isapi 读取,但是有没有办法将此文件保存在内存中(数组或链表)以保存 IO 调用。类似于全局应用程序状态。

4

1 回答 1

1

您的工作进程如何分布在您的服务器上?你有一台服务器和一个工作进程,还是多台服务器?

  • 如果您有一台带有一个工作进程的服务器,您可以将文件读入静态数组或字符串来管理它(只需确保您考虑并发线程同时读取/修改它)

  • 如果您在一台服务器上有多个工作进程,则可以使用命名共享内存。我以前在 ISAPI 过滤器中使用过它来共享信息,并且效果很好。它甚至应该为您处理并发问题。你可以在这里阅读更多:http: //msdn.microsoft.com/en-us/library/aa366551%28v=vs.85%29.aspx

  • 如果您分布在多个服务器上,则可以使用像 memcached 这样的分布式缓存。这设置起来更复杂,但它会给你带来良好的性能。这里有一个关于设置的线程:C++ api for memcache

于 2011-02-18T05:34:51.007 回答