热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP数据缓存

ThinkPHP的数据缓存功能应该是一个非常大的特色,期间也经历了不少完善,主要由Cache类来完成,并且以工厂模式支持了很多的缓存方式,目前支持的有:File文件方式,Db数据库方式,Shmop共享内存方式

ThinkPHP的数据缓存功能应该是一个非常大的特色,期间也经历了不少完善,主要由Cache类来完成,并且以工厂模式支持了很多的缓存方式,目前支持的有:

File 文件方式

Db 数据库方式

Shmop 共享内存方式

Eaccelerator Eaccelerator (Turck MMcache fork)

Memcache Memched

Apc APC

Apachenote Apache note

Sqlite SQLite

Xcache

对于用户来说,并不需要了解具体某种缓存方式实现的细节,而是统一通过公共的接口方法来实现缓存写入和读取,包括有效期设置,缓存的使用范围可以用在框架的各个层次,包括数据库查询缓存、数据对象缓存、应用自定义缓存等,使用缓存类的方式如下:

  1. Import("Think.Util.Cache"); 
  2. // 取得缓存实例 其中type参数表示上面列出的缓存类型 默认为File类型 
  3. $cache = Cache: :getInstance($type); 
  4. // 写入缓存 
  5. $cache->set($name,$value,$expire); 
  6. // 读取缓存 
  7. $cache->get($name); 
  8. // 删除缓存 
  9. $cache->rm($name); 
  10. // 清空缓存 
  11. $cache->clear($name); 

通常来说缓存会自动管理,过期的会自动清除,所以不需要手动来清除,在0.9.8版本以后,还增加了更加方便缓存操作的S方法,例如,上面的操作可以简化为:

  1. // 写入缓存数据 
  2. S($name,$value,$expire); 
  3. // 读取缓存数据 
  4. S($name); 
  5. // 删除缓存 
  6. S($name,NULL); 
  7. // 另外还可以指定其它的缓存方式操作 
  8. S($name,$value,$expire,$type

ThinkPHP支持自动数据对象缓存,该功能无需启用动态数据缓存就可以使用了,事实上,ThinkPHP的核心Action类的预定义操作方法中大量使用了数据对象自动缓存功能,第一次读取某个Vo对象会自动生成缓存,重复刷新页面或者其他用户读取该数据对象的时候无需再次访问数据库,而当某个用户对该数据对象进行了修改,系统会自动删除缓存数据对象,以便下次自动重新生成缓存,自动缓存仅仅适用于数据对象,对于数据列表对象无法完成自动缓存的更新功能.

框架还支持对缓存读写次数的统计功能.


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
author-avatar
那年差点做歌神
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有