文件缓存和memcache内存缓存,我该选那个?
因为公司需要,要我统计每个用户在网页上的点击状况,进了那些链接。公司网站访问量大概是100多万ip 800w pv 。
在最开始使用了memcache来缓存用户的点击,当点击次数达到一定数量的时候,才写入数据库。 但是由于并发的原因,造成了多php进程同时写入数据库的问题,数据很多重复。
现在我和同事有两种方案,第一种他的是,在memcache中建立多个数组,存放缓存数据,单个数组不能大于1M。然后用独立的一个php进程来做计划任务,定时取memcache中的数组,来执行入库。
第二种我的,就是使用文件缓存,在memcache中点击次数满上限,就把数据存入文件中,清空memcache。然后同样用一个独立的进程来执行入库操作。
我们该选哪种呢?
[解决办法]
既然要入库,又何必用文件缓存呢?
在memcache中点击次数满上限,就把数据执行入库操作,清空memcache
[解决办法]
memcache达到上限的时候,不要急着入库,应该重新创建一个 memcache 缓存。
可以这样来理解:
一共有两个 memcache 缓存,一个正在工作,另一个在后面等着。当前面的那个工作到一定限度了,那就扯下来,另一个上。
典型的换班。。
不知道这样能否解决你的问题