PHP mvc与缓存

phpwsl  发布于 2018-08-27 15:30:24    44

1. MVC是什么?

M(Model)模型层,负责数据处理,业务逻辑。

C(Controller)控制器层,负责调度模型、视图。C层是M与V的桥梁。

V(View)视图层,负责显示数据。

MVC优点: 1、 MVC将代码分成了三层,有利于分工 2. 有利于排错

2. MVC,用户访问的是哪一层?

用户访问的是C层

缓存

原理:先查询缓存中有没有要的数据,如果有,就直接返回缓存中的数据。

如果缓存中没有要的数据,才去查询数据库,将得到数据先存放到缓存中,然后再返回给php。

优点: 1、 减少了对数据库的读操作,数据库的压力降低 2、 加快了响应速度

缺点: 1、 因为内存断电就清空数据,存放到内存中的数据可能丢失

   2、 缓存中的数据可能与数据库中数据不一致

   3、 内存的成本高 

   4、 内存容量相对硬盘小

缓存分类:

  1. 按照存放的介质分类 a. 内存 b. 硬盘

    存放到内存中的数据,叫做内存缓存
    存放到硬盘中的数据,叫做文件缓存

    选择内存缓存还是文件缓存:

     a. 根据你的数据特点来选择。
    如果你数据比较小,并且是热门数据(热数据),应该选择内存缓存。 如果你数据比较大,应该选择文件缓存。</code></pre></li>
  2. 按照存放数据来分类

    a. 数据缓存 b. 页面静态化

    数据缓存: 数据缓存只会将从数据库中查询出来的数据缓存 。

    页面静态化: 将动态的页面变成静态的页面。产生的静态页面应该保存到文件中。

MySQL本身性能就相对比较很慢。因为MySQL数据最终存放到硬盘上。 所以MySQL的读(select)写(update insert delete)性能都相对不高。

memcached他是一个软件,通过memcached可以让你操作内存。就是可以将数据存放到内存中,也可以拿出来。

  • 如何看memcached是否启动

    netstat -tlunp | grep 11211

  • 如何登录到memcache中

    //将数据存放到memcached中 set key 1 3 2

    //从memcache中获取数据 get key

  • memcached提供的命令

php要想操作memcache,必须安装扩展

缓存时间肯定不能是永久缓存。 缓存时间如何设置

  1. 缓存时间最好在后台可以修改。

  2. 缓存时间能够设置成一样吗?

    不行,原因: 如果缓存过期了,一起查询数据库,数据库压力大。这种情况叫做缓存雪崩。

    缓存时间最后有一个时间差。