今天同事需要清理memcache中某种前缀的key的值,但memcache没有专门的这种命令,我帮忙在网上找了一段程序:
How about this function in php: function deletekeysbyindex($prefix) { $m = new Memcached(); $m->addServer('localhost', 11211); $keys = $m->getAllKeys(); foreach ($keys as $index => $
这是 Memcache 分类的页面,点击下面标题查看详细文章内容:
今天同事需要清理memcache中某种前缀的key的值,但memcache没有专门的这种命令,我帮忙在网上找了一段程序:
How about this function in php: function deletekeysbyindex($prefix) { $m = new Memcached(); $m->addServer('localhost', 11211); $keys = $m->getAllKeys(); foreach ($keys as $index => $
我们EmojiAll.com这个网站算是做得很精细、逻辑有些复杂,各种数据库调用很多,不过因为数据库服务器采用阿里云RDS、负载不算很高,所以速度上还是可以的,前期主要注重功能,没有太注意性能优化。
最近因为ECS服务器搬家,发现新服务器的内网带宽比以前增加很多倍,然后打开Drupal的Devel模块查看数据库调用情况,发现sql语句非常多,一个典型页面调用sql语句达到800条之多,内容很多的页面sql语句超过4000条,虽说都还是可以在几秒内打开,但对于有优化强迫症的人来说,显然是无法忍受的。😖
以前其实想过要通过Memcache这种键值对缓存
前段时间就留意到Drupal 7的网站日志中总是出现类似这样的报错:
Spent 15.76 ms splitting 3.1 MB object into 4 pieces, cid = cn_18dao_zhougongjiemeng-cache-locale%3Azh-hans
今天发现运行drush cc all清理缓存的时候Linux界面也是报这样的错,于是又在网上找了一些帖子看:
Thousands of warnings about splitting object, can't tur
今天同事反映网站打开巨慢无比,查看阿里云ECS Web服务器正常,而RDS MySQL数据库服务器有堵塞,都是被下面类似语句链接:
SELECT s.source, s.context, t.translation, t.language FROM mingluji_gongshang.locales_source s LEFT JOIN mingluji_gongshang.locales_target t ON s.lid = t.lid AND t.language = 'zh-hans' WHERE s.textgroup
Memcache几年前我们就开始在Drupal站上启用,对于降低数据库负载的作用很明显,偶尔会出现Memcache自己停了需要重启Memcache服务的情况,但很少很少,几个月也难得一次。
6月底开始申请熊掌号后,重新提交URL、提交MIP版本/AMP版本,带来大量百度爬虫,服务器负载明显增高,另外其它采集者也多起来了,导致我们网站有一阵子总是卡住,甚至随机出现白屏打不开的情况,这种白屏故障会一直持续,直到用drush cc all清理缓存后恢复。
这对网站的访问影响太大了,如果没有及时发现,可能几个小时、半天都打不开,仔细查看RDS的
去年在Drupal单服务器设置Memcache缓存后,效果很明显,今年又试用阿里云的开放缓存服务OCS,同样对降低数据库负载很有用。本来在Drupal以前用MediaWiki的时候就听说过Memcache,去年先在Drupal上用起来了,随后在MediaWiki上也使用了单机的Memcache和阿里云的OCS。
Drupal上的设置还麻烦一点,MediaWiki的设置其实更简单,参看:https://www.mediawiki.org/wiki/Memcached
不过Drupal上查看Memcache是否有效很简单,可以查看网站状态以
很早前开始使用MediaWiki的时候就听说了MemCache,但一直没有用过,直到前几个月下力气做Drupal优化,才安装尝试了Memcache,果然是效果明显,对数据库的压力下降了很多,命中率在80%左右,这样即使安装在单台服务器上,也会让该服务器的负载下降不少。当时记录了一篇博客《Drupal单服务器设置Memcache缓存》。
而Memcache的典型应用其实是部署在专门的缓存服务器上,我曾经看过Wikipedia的服务器拓扑图,缓存服务器的数量还不少。我们近期在准备撤掉部分以前的独立服务器转用云平台,所以在试用阿里云的时候留意了有专门的开放缓存服务O
很久前用MediaWiki的使用就听说过Memcache来加速网站,后来用Drupal看一些优化措施中也说到Memcache,但一直没有时间精力去尝试。
前些天把PHP代码缓存的APC模块安装后,看统计数据,PHP程序代码的命中率几乎达到100%,服务器负下降还是比较明显的。就干脆一鼓作气,我和同事配合把Memcache也安装测试。
APC的安装至需要与服务器的PHP环境、模块设置有关,与Drupal程序没有特别的关系,但Memcache除了服务器环境安装以外,还需要对Drupal系统加装模块来利用Memcache,下面就记录一下服务器
2002-2023 v11.7 a-j-e-0