日期:2014-05-17  浏览次数:20520 次

文件缓存和memcache内存缓存,我该选那个?
因为公司需要,要我统计每个用户在网页上的点击状况,进了那些链接。公司网站访问量大概是100多万ip 800w pv 。

在最开始使用了memcache来缓存用户的点击,当点击次数达到一定数量的时候,才写入数据库。 但是由于并发的原因,造成了多php进程同时写入数据库的问题,数据很多重复。

现在我和同事有两种方案,第一种他的是,在memcache中建立多个数组,存放缓存数据,单个数组不能大于1M。然后用独立的一个php进程来做计划任务,定时取memcache中的数组,来执行入库。

第二种我的,就是使用文件缓存,在memcache中点击次数满上限,就把数据存入文件中,清空memcache。然后同样用一个独立的进程来执行入库操作。

我们该选哪种呢?

------解决方案--------------------
既然要入库,又何必用文件缓存呢?
在memcache中点击次数满上限,就把数据执行入库操作,清空memcache
------解决方案--------------------
memcache达到上限的时候,不要急着入库,应该重新创建一个 memcache 缓存。

可以这样来理解:

一共有两个 memcache 缓存,一个正在工作,另一个在后面等着。当前面的那个工作到一定限度了,那就扯下来,另一个上。

典型的换班。。

不知道这样能否解决你的问题