什么环境我们才应该使用memcache

一直都有看到有提到memcache可以提高网站速度,事实真是如此?

就作者的博客来说,使用memcache把数据缓存,的确是可以减少了数据库的使用率,可是,就加载到内存的缓存数据,测试了下,打开响应时间起码慢了2秒以上,作者用的还是PHP7+Opcache,使用了memcache之后性能下降的可怕,于是不使用了memcache。

就包括现在很多的网络公司都说要熟悉memcache缓存技术,事实上真的用的上吗?

memcache最大的好处是单一网站的分布式的存储,如果日访问量过百万级别的网站,一般都会有做负载均衡来减少服务器的压力,做了负载均衡,memcache就能很好的发挥本该有的效果。数据写入内存,虽然响应一样会慢点,但起码不会导致服务器宏机。

其次,memcache配合负载均衡用来保持会话的SESSION,我们就可以用一台服务器来保存SESSION会话信息,其他的用于动静态文件的均衡处理,可以保证用户的每一次访问,SESSION会话都是在保持连接状态。

这里就还会有一个疑问,虽然作者未曾测试过:

比如自行开发的后台,使用的是SESSION的判断,假设用户登录成功之后存在$_SESSION[‘admin_user’];

如果把该信息写入memcache的话,如果一个服务器内有多个站点,都是需要该值的。

这时候访问A站生成的SESSION会话,访问B网站如果也从memcache来读取会话信息,如此一来,B站提取了合法的SESSION,就能跨站访问了;

当然,该疑问可以当作是PHP开发时的一个安全顾虑

如果只是一个服务器跑多个类型的网站,用户群体不一样,memcache不能发挥它的最大性能,更可能让你的服务器针对SESSION会话及缓存效果减少。

如果是服务器集群,一个用户登录之后可以访问服务器内的所有站点数据,那么,memcache是很理想的!

 

发表评论