2009/8/21 蒋宇捷 <hfahe@163.com>
嗯,C 世界中 Apache2 自带的 mod_mem_cache 也存在类似的问题(所以官方文档也不建立使用它,而推荐 mod_disk_cache)。所以我今年年初时才自己用 C 写了 mod_libmemcached_cache 模块:
http://github.com/agentzh/mod-libmemcached-cache/tree/master
因为Mason本身的cache,当使用内存缓存的时候,Apache每个子进程之间都会各自保留自己的cache值,所以这个值不是唯一确定的。举个例子,页面计数器,计数当使用cache存放时,不同页面请求可能对应不同的Apache子进程,所以刷新页面显示计数时数字会不停来回变化,1->2->1>3类似。
嗯,C 世界中 Apache2 自带的 mod_mem_cache 也存在类似的问题(所以官方文档也不建立使用它,而推荐 mod_disk_cache)。所以我今年年初时才自己用 C 写了 mod_libmemcached_cache 模块:
http://github.com/agentzh/mod-libmemcached-cache/tree/master
所以cache一般用在存放不会要求很精确,不需要频繁变动,变化不大的值。当然可以使用文件缓存解决上面的这个问题,但是性能就会低一些,对于多web服务器的集群还需要考虑使用nfs等共享机制。
嗯,文件缓存在不启用内存缓存辅助时,性能也难以忍受(特别当磁盘还不是特别牛X的时候)。我们先前使用 Apache2 的 mod_disk_cache 看到生产机在高流量下,机器 load 都到 11、13 了,哈哈,后来让 mod_disk_cache 的存储目录指向 tmpfs 分区,load 立马下来了,才 0.x,呵呵。但用 deamon 定期地清理其存储目录也挺头疼的,所以后来我才下决心搞了 mod_libmemcached_cache :)
啊。。。不好。。。有点儿 OT 了 :P
Cheers,
-agentzh
啊。。。不好。。。有点儿 OT 了 :P
Cheers,
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论