我使用的memcached客户端是java memcached client, 有add、get、replace等接口,开发web项目的服务端时,是否web项目服务端判断数据库中哪些数据比较常访问到,然后启动时将最新数据放入memcached中,当web项目客户端访问时web项目服务端先从memcached中查找数据?如果没有再从数据库中查找,找到后先返回给web项目客户端,然后存入memcached中?你们当初是这么做的吗?还有  你们存储数据库对象时如何存储?存储类似javabean的java对象时,这个类对象是否应该是Serializable的对象?如何将此对象存入数据库端?
今天我查资料时,发现很多人说如果不是服务端不是分布式就用不上memcached,而且如果总更新memcached中数据就相当于把内存作为持续化存储了,相当于memcached在做数据库的事,这样和memcached的本意相违背,应该不更新,等待过期,否则开销太大。 请问这些人说的对吗?

解决方案 »

  1.   

    1.放入memcached缓存的数据应该是经常被访问的但修改频率较低的数据,查询的时候首先会在memcached中查找,如果没有再从数据库中查找,此时你应将查询的结构放入到memcached中,然后将结果返回给客户端.
    2.我们项目中存储数据库对象是PO,对象会implements java.io.Serializable
      

  2.   

    你要知道你放入缓存的数据都是访问较多的,不太会被经常修改的数据,否则你用memcached还有什么意义?