spymemcached可以使用CASValue<Object> cas = client.gets(key),保存时把cas.getCas()记录下来,下次执行时判断这个值来更新或不更新。这个值具体怎么变的,我记不太清了,你在多线程情况下测试测试就会用了。

解决方案 »

  1.   

    噢,我来看下,我们使用的是memCachedClient,不过也来看看spymemcached怎么用。
      

  2.   


    我觉得你数据变动一次就要覆盖一次数据啊,难道你还想等很多数据都变更了才重新把所有的数据都加载一次?本来方向就错了吧,可以来我的博客参考下我的方案咯...
    http://blog.csdn.net/shadowsick/article/details/8903278
      

  3.   


    我觉得你数据变动一次就要覆盖一次数据啊,难道你还想等很多数据都变更了才重新把所有的数据都加载一次?本来方向就错了吧,可以来我的博客参考下我的方案咯...
    http://blog.csdn.net/shadowsick/article/details/8903278
    恩,您说的对,我也是这么想的。我意思是,一开始查库里面数据放入缓存,如果有数据变动就update。然后我要只更新变动的数据,如果在这30分钟内缓存数据没有变动,就不更新啊。
      

  4.   


    我觉得你数据变动一次就要覆盖一次数据啊,难道你还想等很多数据都变更了才重新把所有的数据都加载一次?本来方向就错了吧,可以来我的博客参考下我的方案咯...
    http://blog.csdn.net/shadowsick/article/details/8903278表达不好见谅哈,30分钟后更新缓存数据,如果30分钟后缓存数据和开始一样就不update
      

  5.   


    我觉得你数据变动一次就要覆盖一次数据啊,难道你还想等很多数据都变更了才重新把所有的数据都加载一次?本来方向就错了吧,可以来我的博客参考下我的方案咯...
    http://blog.csdn.net/shadowsick/article/details/8903278还是我表达不够好,举个例子。用户登陆后,已用户id作为key,把用户装备数据存入缓存里,这是个30分钟缓存。然后一系列操作都操作缓存数据,我这每隔10分钟想检查缓存数据是否变化,如果用户装备属性变化的话才操作表,我这样想,减轻数据库操作量。
      

  6.   


    我觉得你数据变动一次就要覆盖一次数据啊,难道你还想等很多数据都变更了才重新把所有的数据都加载一次?本来方向就错了吧,可以来我的博客参考下我的方案咯...
    http://blog.csdn.net/shadowsick/article/details/8903278还是我表达不够好,举个例子。用户登陆后,已用户id作为key,把用户装备数据存入缓存里,这是个30分钟缓存。然后一系列操作都操作缓存数据,我这每隔10分钟想检查缓存数据是否变化,如果用户装备属性变化的话才操作表,我这样想,减轻数据库操作量。例如查询一个商品list存放到缓存里面,失效时间为30分钟,你以后每次请求的时候都是先读取缓存,如果不存在,或者失效的时候才去查询数据库,然后遇到一个同步问题,当有人修改了这个商品list中的其中一个对象信息,这个时候,我们要把这个list从缓存中移除,然后等待下次有人请求访问这个商品list,然后继续查询出来再放到缓存中,再后者依然是不用查询数据库,我建议你先到我的博客里看看吧,你的思路不是正解
      

  7.   

    你直接给楼主提供一个思路吧。用aop来实现这玩意比较不错,大概如此
      

  8.   

    你直接给楼主提供一个思路吧。用aop来实现这玩意比较不错,大概如此忘了给分了你的源码我下了,确实很好,用aop来配置给了我很多启发。感谢!!