提醒:本文最后更新于 2859 天前,文中所描述的信息可能已发生改变,请仔细核实。
目前博客主要采用了Varnish+Nginx+PHP+MySQL+Memcache+Redis。
使用这个构架,最主要考虑的是Cache缓存问题,没办法,自从上了Wordpress这条船和走了PHP这条不归路,缓存变得极为重要。
不管怎说,缓存任何时候都很重要啦。特别是对于Wordpress,不缓存,这日子就没法过了。
Nginx的Fastcgi Cache暂时还没好好用到,因为使用了Varnish,就不用多此一举了,不过Fastcgi Cache还是挺好的,不过我用的少,规则写起来没Varnish顺手。
之所以Nginx,不是Apache,也不是A+N,最主要还是Nginx认到底。
Apache作为曾经的最爱,如今已形同陌路,完全不认识了。
Nginx还有个好处就是反代很方便,博客目前反代了Gravatar、Google Favicon。
博客缓存流程是:
用户请求
=>Varnish
=>判断器:
===>1.持久化静态缓存(基本上是很少改动的数据)or >1M的数据长度 => Redis
===>2.伪持久化缓存(请求一次数据库基本不变的数据)or 带缓存时间的缓存(变动少或有变动数据) or <1M的数据长度 => Memcache
=>MySQL Database
任何数据变更都会更新Cache。一般Cache优先选择存储于Memcache,因为php下,还是mc快。
php memcache module我推荐memcached,使用socket模式更佳。
特别是memcached和redis,与igbinary相结合一起,感觉真好。
对了,我更新了IP地址查询的源码:https://kn007.net/ip.php,更快速便捷的查询,欢迎大家使用。缺点是IP数据库资源是2014年1月的数据。
还有个问题就是,有朋友来问,到底要不要用(require/include)_once?
除了性能和效率上,(require/include)_once不如require/include。肯定选择require/include之外。
在这里再次引用鸟哥的话:你使用(require/include)_once,只能证明,你对自己的代码没信心。
你可以参考鸟哥的文章:《再一次, 不要使用(include/require)_once》
最后要说的是,根据PHP 7时间表,PHP 7将在2015年10月发布。
PHP 7基于PHP NG项目(PHP Next-Gen),自从PHP NG开源且合并为PHP 7后,性能就持续增长和改善,它通过Zend加速PHP,使得PHP 7性能有很大提升。
之前尝试过PHP NG,真的很爽!
十分期待今年10月份的正式版,这会给我现在的应用带来更大的性能提升。
更多详情,请查看:https://pages.zend.com/TY-Infographic.html
另记一个Python问题:
InsecurePlatformWarning: A true SSLContext object is not available.
出现了上述错误,只需执行:
pip install requests==2.5.3
即可,目前requests最新版本2.6.0都会这样,原因我不清楚。
最近看到chiphell的土豪们装的机机,一直流口水。。。不过只能想想就好。
转载请注明转自:kn007的个人博客的《说说博客架构与缓存流程,另期待PHP 7》