码迷,mamicode.com
首页 > 其他好文 > 详细

论实现序列化的在云端的必要性(新浪云部署session未能取不到值)

时间:2015-04-09 17:40:09      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:新浪云   memcache   session   nosql   

对于java实现序列化的重要性,在单机程序内是不太容易被重视的,在本地调试中,tomacat自动为为序列化的程序实现了序列化,而且bean(用来实现缓存的java程序太小,不会出现什么问题。


但是一旦部署到新浪云云端,麻烦就出现了,就会发现session为什么存不进值呢?


针对新浪云服务器,session的信息使用的是分布式Memcache存储。


而Memcache存储呢?


不少想构建大负载的网站都采取Memcache来分担数据库的压力。


Memcache首先在服务器端的内存中开辟一个空间,然后建立一个hash表。


memcache以守护程序的形式运行在服务器端(一个或者多个服务器),随时接受来自客户端的连接操作,然后进行存取数据,Memcache是一款nosql内存数据库。采用的是键值存储,每个客户端存入的对象都有一个唯一的key。但是对象是没办法持久化的,跟memcache很相似的redis是可以实现持久化到硬盘的。然后把客户端需要缓存的数据以key-value的形式保存在服务器的内存中的,value值存入key值hash转化后的对应的某个服务器上。取值的时候通过同样的转化后对响应的服务器上付出请求即可。


而在序列化在在其中起到什么作用呢?


在memcache缓存到内存的时候,是需要使用到序列化存储的,因此如果你的bean包中的代码都没实现序列化接口,在缓存的时候是不会被缓存到服务器内存中的,这样就造成了session并没有存值的问题发生。


所以在部署到新浪云的程序存储到session中的对象必须实现序列化接口才可以进行session存储的。





论实现序列化的在云端的必要性(新浪云部署session未能取不到值)

标签:新浪云   memcache   session   nosql   

原文地址:http://blog.csdn.net/u012944224/article/details/44960171

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!