用户向服务器发出HTTP请求。这个请求是用某个类的对象处理的,我们称之为“处理器”。然后两分钟内的同一用户发出另一个HTTP请求。我希望它与第一个处理器的处理器处理相同。所以基本上我想在几个请求中保持某个对象的状态。
我知道我每次都可以将它保存到数据存储区然后加载回来,但这种方法似乎很慢。有没有办法将对象存储在某个RAM位置?
答案 0 :(得分:1)
如何使用memcache?
您无法确保对您的应用的连续请求将转到同一个实例,但是memcache可以帮助减少或消除为每个请求访问数据存储区的开销。
答案 1 :(得分:1)
听起来你正在描述会话。
我不确定您使用的是哪种语言运行时和Web框架,但它肯定包含对会话的支持。 (如果您使用的是Java,则需要enable it。)
标准会话机制将小ID放在存储在用户浏览器中的cookie中。在每个请求中,每个请求都可以转到不同的应用程序服务器,此ID用作从数据存储读取和写入持久性信息的密钥。
如果数据存储访问速度太慢,我建议不要将memcache用于此会话存储,因为memcache设计不可靠,因此用户的会话信息可能随时消失,对他们来说是一次糟糕的经历。
如果您要存储的数据量少于几千字节,那么我建议您执行Play Framework所做的工作,即加密会话数据并将其直接存储在用户浏览器中存储的cookie中。这是快速而真正无国籍的。
如果您有更多的数据存储在cookie中,并且您不想使用数据存储,则可以在浏览器上使用JavaScript本地存储,并使用AJAX调用与服务器通信。 (如果要支持旧版浏览器,可能需要使用jStorage包装器库。)
答案 2 :(得分:0)