前端用户查询数据时:
先去缓存或nosql(redis mongodb等)里面查。如果能找到,就直接把数据返回给用户;
如果缓存里面也没有(缓存没命中),才去数据库中查找。
如果有攻击者经常查询一些不会存在的数据,比如查询商品id= -1,那么缓存里面不可能会有商品id=-1
分类: PHP 下的文章
elasticsearch集群与搜索
ES是基于Lucene的搜索服务器。它提供了一个分布式多用户的全文搜索引擎,基于RESTful web接口。ES是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎;
docker搭建lrnp环境实例
docker搭建lrnp环境的网络设置2种方式:
1.通过宿主机ip和指定端口建立互联,适用于外网来访问容器服务
修改nginx.conf里fastcgi_pass 192.168.30.6:9001; #宿主
mod_php、FastCGI等PHP运行方式分析
PHP运行方式
php默认提供了很多种SAPI,常见的给apache的mod_php5,CGI,给IIS的ISAPI,还有Shell的CLI。
对于一个基于apache的php应用,其运行流程可以简单归结如下:
apache -&
Apache的三种工作模式
Web服务器Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式。
它们分别是prefork,worker和event,它们同时也代表这Apache的演变和发展。
PHP的内存管理与垃圾回收机制
一、内存管理机制
PHP内存管理器
PHP的运行机制与原理(底层)
PHP总共有三个模块:内核、Zend引擎、以及扩展层;
PHP内核用来处理请求、文件流、错误处理等相关操作;
Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。
比如,我们需要mysq
PHP的变量_数组_对象值复制和引用复制
一.变量
1.变量传值赋值
在PHP两个变量之间进行传值赋值时,不会产生新结构体,而是2个变量共用1个结构体(refcount__gc=2),
只有在1个变量改变时,将会造成结构体的分裂;
PHP的底层分析
PHP编译
编译型语言:
对于C语言,C++, 编译成机器码(二进制)来运行.
java语言, 把.java编译成 .class,称为bytecode, 由jvm来运行.
解释语言:
解释器解释执行. 典型的如 linux she
PHP各编码下字符占用说明
字符集(Charset)是多个字符的集合;
字符编码(encoding)就是以二进制的数字来对应字符集的字符。
如Unicode字符集可依不同需要以UTF-8、UTF-16、UTF-32等方式编码
常见字符集