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