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

     
  • 相关阅读:
    I-Cache和D-cache
    socat使用
    反射
    属性方法
    getitem
    文件打开编辑和函数参数
    python3编码问题个人理解
    正文内容 python3编码问题
    进度条制作
    集合关系
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10907681.html
Copyright © 2011-2022 走看看