保存缓存:

user表数据:

cache()方法保存缓存:

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

来看其中一个缓存文件:\runtime\cache\7e\58d63b60197ceb55a1c487989a3720.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 think\Cache;" 找到 Cache 类的 set() 方法:

再跟进 self::init()

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

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

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

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

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

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

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

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

读取缓存:

缓存文件中的数据构成:

缓存标签:

最新文章

  1. 可在广域网部署运行的QQ高仿版 -- GG叽叽V2.4,增加远程协助、桌面共享功能(源码)
  2. java 压缩文件 传入文件数组,压缩文件,在指定路径下生成指定文件名的压缩文件
  3. 关于《一步步学习ASP.NET MVC3》系列发布时间的说明
  4. apache开源项目--JMeter
  5. 去除后台ckeditor的style=&quot;....&quot;的样式
  6. start-tomcat7.launch
  7. [置顶] access函数-linux
  8. 安装你自己的perl modules
  9. Java源码解读(一) 8种基本类型对应的封装类型
  10. 机器学习-分类器-级联分类器训练(Train CascadeClassifier )
  11. Orabbix监控Oracle 11g
  12. 制作U盘启动安装CentOS Linux系统
  13. oracle的sequence出现gap的问题
  14. 在CentOS7上部署 Kubernetes集群
  15. FZU 2098 刻苦的小芳(卡特兰数,动态规划)
  16. vc通过进程名返回进程id
  17. bzoj4639 博士的选取器
  18. 转:MyEclipse安装Eclipse Memory Analyzer插件,并进行错误文件分析流程
  19. 如何理解Robot Framework
  20. javascript中对两个对象进行排序 和 java中的两个对象排序

热门文章

  1. [CSP-S模拟测试]:导弹袭击(数学+凸包+单调栈)
  2. tree 命令
  3. Python编程:从入门到实践—if 语句
  4. 十四、python字典中的方法汇总
  5. spring切换环境变量——@Profile注解的使用
  6. Caffe参数交换源码分析
  7. request.getParameter
  8. C# 捕获全局异常
  9. 【ABAP系列】SAP ABAP的事件执行顺序
  10. LeetCode——28. Implement strStr()