于吉吉的技术博客

建造高性能门户网

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  65 随笔 :: 6 文章 :: 149 评论 :: 0 Trackbacks

缓存

     摘要: 大名鼎鼎的分布式缓存系统memcached,在开源社区中可谓是无人不知无人不晓,memcached支持分布式的横向扩展,但memcached的服务端却是单实例,并无"分布式"的功能,所谓的分布式只是客户端在存储的主键做分布的存储;还有memcached组件缓存对象,如果组件无进行序列化必定无法正确取得数据;如何使用memcached的java组件来监控memcached的运行状态;以上等等的问题是我在日常的工作中碰到并解决的,拿出来跟大家做个分享^_^

对象的序列化
首先memcached是独立的服务器组件,独立于应用系统,从客户端保存和读取对象到memcached是必须通过网络传输,因为网络传输都是二进制的数据,所以所有的对象都必须经过序列化,否则无法存储到memcahced的服务器端.
正如我们以往在集群中应用的序列化一样,memcached的序列化的性能也是往往让大家头疼,如果我们对我们的domain类进行对象的序列化,第一次序列化时间会比较长,但后续会优化,也就是说序列化最大的消耗不是对象的序列化,而是类的序列化,如果存储的只是一个String  阅读全文
posted @ 2010-12-08 15:00 陈于喆 阅读(5599) | 评论 (4)  编辑

     摘要: 记得问过身边的一些开发工程师(非前端)缓存要分几个层次,从哪里做起,答案很多,比如反向代理缓存,DNS缓存,memcached,数据库缓存等等,确实很完整,不过好像漏掉了我们用户跟我们联通的最根本的工具浏览器,确实好似很少有人把用户的浏览器当作是web站点的组成部分来看待

缓存协商
现在我们需要将用户的浏览器也纳入我们构建网站各个缓存层次中的其中一个重要层次,网站信息和内容在由web服务器生成,而将这些信息和内容作为一段二进制的文件作为本地缓存文件存放在用户的浏览器,是两个独立个体共同完成的任务,所以两者之间需要一种沟通的机制,也就是HTTP的缓存协商

Last-Modified和If-Modified-Since协商
Last-Modified和If-Modified-Since分别位于响应头信息和请求头信息中,都是记录请求的页面最后的修改时间
在第一次访问web服务器会返回200状态,并在浏览器的响应头Last-Modified上写上此页面最后修改的时间戳
使用firebug进行查看


  阅读全文
posted @ 2010-08-25 00:03 陈于喆 阅读(6425) | 评论 (0)  编辑