微信扫一扫打赏支持

lavarel中如何使用memcache

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数据库里面获取数据,在将数据缓存到本地的缓存系统里面,下次直接从缓存系统里面返回数据的这种架构叫做穿透式缓存系统。

 

 

 
posted @ 2019-05-23 19:29  范仁义  阅读(330)  评论(0编辑  收藏  举报