文档章节

PHP mvc与缓存

phpweishunlong
 phpweishunlong
发布于 2017/05/15 00:19
字数 686
阅读 5
收藏 0
点赞 0
评论 0

###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. 根据你的数据特点来选择。
    
           如果你数据比较小,并且是热门数据(热数据),应该选择内存缓存。
    
           如果你数据比较大,应该选择文件缓存。
    
  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. 缓存时间能够设置成一样吗?

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

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

© 著作权归作者所有

共有 人打赏支持
phpweishunlong
粉丝 1
博文 64
码字总数 26259
作品 0
广州
程序员
构架高性能WEB网站的几点知识

前言: 对于构架高性能的web网站大家都很感兴趣,本文从几点粗谈高性能web网站需要考虑的问题。 HTML静态化 什么是html静态化? 说得简单点,就是把所有不是.htm或者.html的页面改为.htm或者...

吞吞吐吐的 ⋅ 2017/10/11 ⋅ 0

InitPHP2.1.1 PHP框架,可能是最好的国产PHP框架

下载地址:http://initphp.com 关于InitPHP框架 InitPHP是一款轻量级的php框架,免费下载,免费使用! InitPHP采用了分层体系架构,在MVC模式基础上进行延伸! 详细的API文档和使用Zend stud...

initphp ⋅ 2012/03/22 ⋅ 1

Colin/MyClassPHP

#MyClassPHP MyClassPHP是一个开源、免费的学习框架,也被称之为类库包,属于MVC框架成品 官方交流群,提交BUG群 438695935 ##主要更新 ###1.目录不在多样化,而是传统的web结构 ###2.简单M...

Colin ⋅ 2016/11/04 ⋅ 0

phalcon开启metaData缓存

官方文档:https://docs.phalconphp.com/zh/latest/reference/models-metadata.html phalcon的model会非常频繁的使用模型元数据,所以有必要将模型元数据缓存起来: 什么是phalcon的metaDat...

爬墙 ⋅ 2016/11/09 ⋅ 0

PHP开发框架--CakePHP

CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出...

匿名 ⋅ 2008/09/14 ⋅ 3

CmlPHP V2.7.3,快速稳定易维护的 PHP 框架

CmlPHP V2.7.3 发布了,本次发布主要更新如下: model实例支持连惯访问db的方法 orm添加 getOneValue chunk及plunk方法 CmlPHP 是基于php5.3+(v2.7+要求php5.4+)版本(已经测试过php7)开发的M...

雨空 ⋅ 2016/11/30 ⋅ 0

CmlPHP V2.5.8 发布,PHP 开源框架

CmlPHP V2.5.8 发布,变更: 修改CmlCacheMemcache 兼容 Memcached/Memcache扩展 优先使用Memcached 修改所有 jsonencode 当php>5.4.0时使用 JSONUNESCAPED_UNICODE 主要特性: CmlPHP 基于php......

雨空 ⋅ 2016/01/18 ⋅ 0

CakePHP 2.6.7 发布,PHP 开发框架

CakePHP 2.6.7 发布,这是 CakePHP 2.6.6 的紧急修复版本,包括了 PHP < 5.4 的语法错误修复。如果你在使用 PHP < 5.4.0 请升级到 2.6.7 版本。此版本现已提供下载: https://github.com/cak...

oschina ⋅ 2015/05/30 ⋅ 2

CmlPHP V2.5.1 发布,为程序员而生的开发框架

CmlPHP V2.5.1 发布,变更: Html模板引擎移除缓存文件头部换行 修复Html模板引擎中config 与 lang标签遇到带_的key值不识别的问题 开发文档增加锁-并发处理说明 主要特性: CmlPHP 基于php5....

雨空 ⋅ 2015/12/09 ⋅ 20

Codeigniter的一些优秀实践

最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路。用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以...

萨斯辈的呼唤 ⋅ 2015/09/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

开启远程SSH

SSH默认没有开启账号密码登陆,需要再配置表中修改: vim /etc/ssh/sshd_configPermitRootLogin yes #是否可以使用root账户登陆PasswordAuthentication yes #是都开启密码登陆ser...

Kefy ⋅ 18分钟前 ⋅ 0

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeep...

海岸线的曙光 ⋅ 25分钟前 ⋅ 0

js保留两位小数方法总结

本文是小编针对js保留两位小数这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容: 一、我们首先从经典的“四舍五入”算法讲起 1、四舍五入的情况...

孟飞阳 ⋅ 43分钟前 ⋅ 0

python log

python log 处理方式 log_demo.py: 日志代码。 #! /usr/bin/env python# -*- coding: utf-8 -*-# __author__ = "Q1mi""""logging配置"""import osimport logging.config# 定义三种......

inidcard ⋅ 58分钟前 ⋅ 0

mysql 中的信息数据库以及 shell 查询 sql

Information_schema 是 MySQL 自带的信息数据库,里面的“表”保存着服务器当前的实时信息。它提供了访问数据库元数据的方式。 什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,...

blackfoxya ⋅ 今天 ⋅ 0

maven配置阿里云镜像享受飞的感觉

1.在maven目录下的conf/setting.xml中找到mirrors添加如下内容,对所有使用改maven打包的项目生效。 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.al......

kalnkaya ⋅ 今天 ⋅ 0

centos7下创建新用户并授权

1、创建新用户 创建一个用户名为:test adduser test 创建初始密码: passwd test 2、授予root权限 个人用户的权限只可以在/home/test下有完整权限,其他目录要看别人授权。而经常需要roo...

xixingzhe ⋅ 今天 ⋅ 0

求助:TiledMap如何旋转对象呢?

比如我要旋转一个梯子的角度,单纯在TiledMap旋转角度好像没有效果。那是要用代码来控制角度,还是说只能通过导入相对应的斜的图片才可以呢?

花谢自相惜 ⋅ 今天 ⋅ 0

Micronaut 之HelloWorld!

小试一下Micronaut,按照官方文档跑了一下helloworld 第一步克隆,按照官方文档是: git clone git@github.com:micronaut-projects/micronaut-core.git 结果怎么是这样?? 换个方法吧 git ...

桂哥 ⋅ 今天 ⋅ 0

pom文件

Aeroever ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部