• [thinkphp 5.0源码阅读] 缓存(一)


    保存缓存:

    user表数据:

    cache()方法保存缓存:

    访问 http://mythinkphp.com/index/index/cache ,两个缓存被保存(runtime/cache目录下):

     

    来看其中一个缓存文件: untimecache7e58d63b60197ceb55a1c487989a3720.php

    <?php
    //000000003600a:2:{i:0;a:4:{s:2:"id";i:1;s:4:"name";s:2:"ss";s:3:"age";i:24;s:3:"sex";i:1;}i:1;a:4:{s:2:"id";i:2;s:4:"name";s:2:"jj";s:3:"age";i:23;s:3:"sex";i:2;}}
    ?>

    很明显数据被序列化了。取a:2:{i:0;a:4:{s:2:"id";i:1;s:4:"name";s:2:"ss";s:3:"age";i:24;s:3:"sex";i:1;}i:1;a:4:{s:2:"id";i:2;s:4:"name";s:2:"jj";s:3:"age";i:23;s:3:"sex";i:2;}}

    解序列化:

    可见数据确实被序列化之后保存到了文件。

    进入到代码:

    通过 “Cache::set('user1',$user,3600);” 和 "use thinkCache;" 找到 Cache 类的 set() 方法:

    再跟进 self::init() 

    根据打印出来的数据可以看出,init()初始化了一些缓存的配置,比如:缓存类型(type), 缓存路径(path)等。

    再进入 Config::get()看看:

    返回了缓存文件配置信息。手册中还这样介绍:

    所以用户的缓存信息配置将会进入到connect()函数:

    connect()返回了一个对象(File类实例化),至此完成了一系列的初始化工作,进入到了 hinkphplibrary hinkcachedriverFile.php

    set() 方法完成了将缓存写入文件的工作。

    再来看看缓存文件名 ”$filename = $this->getCacheKey($name);“ 的由来。

    至此缓存数据写入到了文件中。

    读取缓存:

     缓存文件中的数据构成:

     

     缓存标签:

  • 相关阅读:
    编写PHP规则
    phpmyadmin修改mysql数据库密码
    响应式设计:流式布局
    响应式设计:媒体查询
    html5、css3及响应式设计入门
    HTML5学习笔记五:html5表单
    HTML5学习笔记四:html5结构
    HTML5学习笔记三:aside元素,time元素与微格式
    css基础知识1——css基础语法、css选择器、css继承和层叠
    HTML基础知识5——<div>和<span>标签
  • 原文地址:https://www.cnblogs.com/natian-ws/p/7565400.html
Copyright © 2020-2023  润新知