MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(好比字符串、对象等)使用key-value存储,数据能够来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题php
主要用于动态Web应用以减轻数据库的负载。
它经过在内存中缓存数据和对象来减小读取数据库的次数,
从而提升了网站访问的速度。html
memcache处理的原子是每个key、val,key会经过一个hash表转换成hash的key,便于查找对比以及竟可能的作到散列。同时mem用的是一个二级散列,经过一个hash表来维护。laravel
更改cache.php中cache_driver值为memcached。数据库
use Cache; #控制器中使用缓存 public function memcache(){ Cache::put('memcache','hello,world',1); #写入缓存(key,value,time) dd(Cache::get('memcache')); #获取缓存 }
参考:laravel操做memcache笔记! - 简书
https://www.jianshu.com/p/2a3baf32348a缓存
参考:memcache如何在项目中使用_百度经验
https://jingyan.baidu.com/article/ca2d939d1c74fceb6c31ce8f.html服务器
当用户发生一个动态请求的时候,先去memcache服务器里面查询缓存数据,当首次查询的时候,memcache里面确定是没有数据的,这个时候须要php程序去MySQL数据库里面获取数据,将获取先缓存一份到memcache服务器里面,在把数据返回给用户。当第二次发生相同的动态的请求的时候,这个时候因为上一次memcache里面已经缓存了对应的查询数据,这个memcache就能够直接的返回数据,而不须要MySQL数据库的参与,减小了MySQL数据库的压力。对于这种架构来讲,因为memcache是处于旁边的,这种缓存系统叫作旁路式缓存系统。网络
对于下面这种结构,缓存数据的获取不依赖php程序,缓存系统自身有能力能够从MySQL数据库里面获取数据,在将数据缓存到本地的缓存系统里面,下次直接从缓存系统里面返回数据的这种架构叫作穿透式缓存系统。架构