首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储.net会话数据的最佳方法

存储.net会话数据的最佳方法
EN

Stack Overflow用户
提问于 2009-09-11 03:16:53
回答 3查看 669关注 0票数 1

我正在研究一种用于缓存或存储.net会话数据的免费、高可用、高性能的解决方案(用于高流量网站)。我不想使用db (db是流量增长的瓶颈)。

有一些密钥/值存储,但据我所知,它们不支持.net对象。还有一些支持高可用性的分布式或复制缓存解决方案。

但是,存储会话数据的最佳方法是哪一种(如果它运行在mono上更好)?

编辑:为了获得高可用性,我必须将用户会话数据复制到多台机器上。如果需要实现最佳方法,我可以编写序列化程序。用户会话包含电子商务站点所需的标准对象。

你好,Sirmak

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-11 03:39:34

您可以使用作为windows服务运行的会话状态服务器,但是为了使其在web场场景中工作,您需要让其中一个web服务器运行会话状态服务,而其他web服务器将与该单个web服务器进行协调。当然,这是一个问题,如果您的web服务器崩溃,运行该服务。

另一种选择是使用memcachd,它是内存会话状态服务器中的分布式服务器。这是免费的,并且已经为这个框架提供了.NET。它已经相当成熟,并且已经存在了一段时间。

如果你有钱要花,那么扩大服务器可能是一种选择。然而,我被告知,在真正大规模的网站上,大规模的技术需要不时地被回收。

从微软的拐弯处来的是“速度”,这是与memcached相同的.NET。这还没有发布,也不是一项成熟的技术。

您将需要选择适合您的技术和财务要求的解决方案。

票数 3
EN

Stack Overflow用户

发布于 2009-09-11 03:37:06

如果您是免费的,那么MySQL就能够实现处理大流量 (显然是在正确的硬件上)。

票数 2
EN

Stack Overflow用户

发布于 2009-09-11 03:34:09

首先,您需要确定您要在会话中存储什么。有些事情根本不能序列化。但是,您可以为相关对象实现自己的序列化例程,并以您所组成的方式存储它们。例如,您可以在内部访问BinarySerialisation,然后将对象作为base64编码的字符串写入缓存工具(memcached或其他什么)并检索它。

但是,您打算在这里实现什么样的可伸缩性呢?您是否在每个请求的服务器之间交换用户?如果是这样的话,您至少需要一个中央缓存系统,或者至少是镜像缓存系统。

如果您将一个用户保持在同一台服务器上,但可能有很多,那么这并不重要,您可以使用同一台计算机上的外部进程来缓存。

我想你需要提供更多的信息。我不熟悉在mono上运行东西(所以我建议使用asp.net状态服务),但我猜第三方缓存过程(比如memcached )可能不错。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1408806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档