现在应该有很多站长们都知道 Memcached 和 Redis 这两个服务器端的缓存扩展了吧?笨猫早期也折腾了好久了,自从笨猫放弃使用 WordPress 本地缓存插件后,其实看完这篇文章就明白是否你需要一个缓存扩展。我并不否认缓存带来的速度和读取优势,有时候需要量力而行。
[title]写文章之前:[/title]
这也说明无论是 Memcached 还是 Redis 实现的优化加速效果,至少对于笨猫的博客当前的流量来说是比较“鸡肋”的,那怕 Memcached 和 Redis 一直都是服务器端速度优化必选扩展的情况下,没有这些扩展的支持服务器速度和负载依然可以保持在非常平稳和低的水平。今天笨猫就给大家讲解一下要理智冷静的选择使用 Memcached 或者 Redis,不要盲目跟风。很多时候网站和服务器其实就是需要一个“合适”的状态就可以了,并不是别人用的好你就一定可以用得好的。
[title]缓存扩展理性分析:[/title]
通过上面的介绍基本上可以判定 Memcached 就是通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web 应用( WordPress 、 Typecho )的速度、提高可扩展性的,而 Redis 看着其实就是 Memcached 升级增强体了对缓存的存储和读写速度相对于 Memcached 来说有了大幅的的提升。总之对于我们 WordPress 站点来说 Memcached 就够用了,Redis 可能在性能上会有一定提升而已。
我们再理智冷静的分析一下就会发现其实 Memcached 对硬件配置的要求更低,Redis 需要足够硬件内存支撑才能更好的发挥出性能提升效果(内存低于 1G 的服务器明月是不建议使用 Redis 的,因为一旦 Redis 对内存有更多需求的时候进程就会被“干掉”,这时候网站访问就会出现“404”了。)对于我们个人博客来说 1G 内存配置算是比较常见的配置了,在 MySQL、Nginx 使用一部分后基本也就没有剩下多少了,勉强的用用 Memcached 还是可以接受的。
[title]博客的使用问题:[/title]
那么 Memcached 的使用呢,效果会有多好呢?就笨猫的经验来看,对于我们个人博客来说效果真的是很不明显的,当然有站长会说使用了 Memcached 后速度提升明显,这个笨猫认为是一种“假象”而已,站长访问自己网站的频率是很高的,这期间浏览器缓存已经积累了很多,甚至有些站长为了便于调试会本地强制回源访问,这些因素其实都会影响页面的载入速度的,很多时候你的站点访问快不快不是站长自己感觉的,而是要看访问用户的体验的,很多站长们都容易犯这个“灯下黑”的错误。
WordPress 站点使用 Memcached 或者 Redis 都是需要插件配合使用的,而这类插件一般都是缓存插件,在【我为什么放弃了缓存插件?】和【WordPress 博客什么时候才需要缓存插件】文章里明月专门讲到过缓存插件的弊端和什么时候才需要使用缓存插件,用到 Memcached 和 Redis 身上同样的可以的。通俗点说 Memcached 和 Redis 一般都是在服务器硬件已经无法承受或者当前的访问量已经临近服务器能承受的“警戒”阈值的时候才需要用的,也就这时候才能体验到“提速”的效果。当然这必须要有一个大前提那就是你的服务器有足够的内存才可以否则就是“适得其反”的事儿了。
至于说服务器访问量、负载都在正常阈值情况下使用 Memcached 和 Redis 也不是不可以,但会带来稳定性和安全性上两个无法预测的隐患,因为 Linux 特殊的内存机制, Memcached 和 Redis 都会有因内存紧张进程被“干掉”的风险,这个风险是不可控和预测的哦!当然如果你的内存很大可以无视这条了。安全隐患主要就是 Memcached 和 Redis 自身的漏洞造成, Memcached 的默认端口 11211 就曾经爆过很严重的漏洞,使用阿里云 ECS 的应该当时都收到过相应的通知了吧!Redis 自然也有这个安全风险的,明月就曾经碰到因为漏洞招来攻击造成被阿里云“黑洞”了近一天的时间(啥是“黑洞”?大家自行百度脑补吧!),这期间服务器完全被“封禁”。
文章评论