memcached高并发的问题,如果你的网站同时访问量不多的话,基本上可以不用考虑上面的问题,如果真的同时有上万用户同时在线的话,多添加几台硬件服务器.布置分布式

解决方案 »

  1.   

    在add或者set  key 的时候,可以分开啊  每个用户的id是不一样的,设置的生效日期不一样,失效日期自然也就不是一起的了
      

  2.   

    不知道楼主怎么写的memcache呢,一起把所有的数据同时写到内存里了吗
    这样做不好
      

  3.   

    比如我现在查一个排行榜,全国排行的,所有用户都是同一个查询$query = "select * from members order by money desc limit 10";
    查询出来的结果为: $arrList;
    memcache缓存: $objCache->set(md5($query), $arrList, 1*60*60);不是这样弄的么?
      

  4.   

    也不是memcache高并发的问题,是在那个缓存失效后与缓存获得数据前的那一小段时间
      

  5.   

    我不知道lz的数据量有多大.
    之前做过yahoo财经的自选股部分,有个排行榜的问题,当时采用的apc技术,缓存策略和你的相同.
    当时yahoo自选股的pv大概每天200w,我们当时没有碰见这个问题.我想说的lz的想法多虑了,lz说的瞬间上w用户,我们不妨认为1s的pv=1w.
    那么一天的pv=60*60*24*1w = 8.64亿,好像现在还没有网站pv能达到这么多,
    及时达到了,也是诸多服务共同做到的.如果lz怕数据库死锁问题,不妨多考虑
    一下数据库设计.
      

  6.   

    假设访问量比较大,你不如给缓存做个缓存
    用两个变量的memcache 一个有效期为1小时 一个有效期为半个小时
    使用时两个都读取一下,如果两个都有效则继续运行;
    如果其中有一个失效了,使用另一个有效的先把页面数据显示出来,然后把有效的数据复制到失效的里面,然后触发查询把结果更新到两个memcache中