Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存储.net会话数据的最佳方法_.net_Session_Caching_Mono_Key Value - Fatal编程技术网

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

存储.net会话数据的最佳方法,.net,session,caching,mono,key-value,.net,Session,Caching,Mono,Key Value,我正在研究一种免费、高可用、高性能的解决方案,用于缓存或存储.net会话数据(用于高流量网站)。我不想使用db(db是流量增加的瓶颈) 有一些键/值存储,但据我所知,它们不支持.net对象。 还有一些分布式或复制缓存解决方案支持高可用性 但是,存储会话数据的最佳方式是什么(如果在mono上运行会更好) 编辑:为了实现高可用性,我必须将用户会话数据复制到多台机器上。如果需要实现最佳方法,我可以编写序列化程序。用户会话包含电子商务站点所需的标准对象 问候,, Sirmak首先,您需要确定会话中存储的

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

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

但是,存储会话数据的最佳方式是什么(如果在mono上运行会更好)

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

问候,,
Sirmak

首先,您需要确定会话中存储的内容。有些东西根本无法连载。但是,您可以为相关对象实现自己的序列化例程,并按照自己的方式存储它们。例如,您可以在内部对BinarySerialization进行初始化,然后将对象作为base64编码字符串写入缓存工具(memcached或其他任何工具)并检索它

但是,您在这里想要什么样的可伸缩性?您是否根据请求在服务器之间交换用户?如果是这样,您至少需要一个中央或镜像缓存系统

如果您将一个用户保留在同一台服务器上,但可能有许多用户,那么这并不重要,您可以在同一台机器上使用外部进程进行缓存


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

首先,您需要确定会话中存储的内容。有些东西根本无法连载。但是,您可以为相关对象实现自己的序列化例程,并按照自己的方式存储它们。例如,您可以在内部对BinarySerialization进行初始化,然后将对象作为base64编码字符串写入缓存工具(memcached或其他任何工具)并检索它

但是,您在这里想要什么样的可伸缩性?您是否根据请求在服务器之间交换用户?如果是这样,您至少需要一个中央或镜像缓存系统

如果您将一个用户保留在同一台服务器上,但可能有许多用户,那么这并不重要,您可以在同一台机器上使用外部进程进行缓存


我想你需要提供更多的信息。我不熟悉在mono上运行东西(因此我只推荐asp.net状态服务),但我猜像memcached这样的第三方缓存过程可能会很好。

如果你说的是免费的,那么就能够(显然是在正确的硬件上)

如果你说的是免费的,那么就能够(显然是在正确的硬件上)

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

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

若你们有钱花,那个么扩展服务器可能是一种选择。然而,有人告诉我,在真正大规模的网站上,横向扩展技术需要不时回收

来自微软的是Velocity,它与memcached的.NET相当。这项技术尚未发布,也不是一项成熟的技术


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

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

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

若你们有钱花,那个么扩展服务器可能是一种选择。然而,有人告诉我,在真正大规模的网站上,横向扩展技术需要不时回收

来自微软的是Velocity,它与memcached的.NET相当。这项技术尚未发布,也不是一项成熟的技术


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

@merin thinks:用于您可以使用的缓存。@merin thinks:用于您可以使用的缓存。