lavarel中如何使用memcache
一、总结
一句话总结:
composer下载包,配置,使用函数
1、memcache是什么?
键值对内存缓存
MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)使用key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题
2、为什么要使用Memcache?
通过在内存中缓存数据和对象来减少读取数据库的次数
主要用于动态Web应用以减轻数据库的负载。
它通过在内存中缓存数据和对象来减少读取数据库的次数,
从而提高了网站访问的速度。
3、Memcache的实现原理?
键值对 hash表
memcache处理的原子是每一个key、val,key会通过一个hash表转换成hash的key,便于查找对比以及竟可能的做到散列。同时mem用的是一个二级散列,通过一个hash表来维护。
4、memcache有两个核心组件:服务端和客户端 如何工作?
总结:标准的服务端和客户端工作模式
在一个memcache组件查询中,client先通过key的hash值来确定kv在service端的位置,当server端确定后,客户端就会发一个请求到server端。让它来查找出确切数据,因为这之间没有交互以及多播协议,因此mem带给网络的影响最小
5、使用memcache的公司有哪些?
Yahho,facebook,搜狐,新浪,豆瓣。Wikipedia等
二、lavarel中使用memcache
更改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如何在TP框架项目中使用
参考:memcache如何在项目中使用_百度经验
https://jingyan.baidu.com/article/ca2d939d1c74fceb6c31ce8f.html
当用户发生一个动态请求的时候,先去memcache服务器里面查询缓存数据,当首次查询的时候,memcache里面肯定是没有数据的,这个时候需要php程序去MySQL数据库里面获取数据,将获取先缓存一份到memcache服务器里面,在把数据返回给用户。当第二次发生相同的动态的请求的时候,这个时候由于上一次memcache里面已经缓存了对应的查询数据,这个memcache就可以直接的返回数据,而不需要MySQL数据库的参与,减少了MySQL数据库的压力。对于这种架构来说,由于memcache是处于旁边的,这种缓存系统叫做旁路式缓存系统。
对于下面这种结构,缓存数据的获取不依赖php程序,缓存系统自身有能力可以从MySQL数据库里面获取数据,在将数据缓存到本地的缓存系统里面,下次直接从缓存系统里面返回数据的这种架构叫做穿透式缓存系统。