`

缓存—— 数据缓存 快速缓存

阅读更多

1.数据缓存

在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可。eg:

S(array('type'=>'xcache','expire'=>600));

缓存初始化可以支持的参数根据不同的缓存方式有所不同,常用的参数是:

参数

描述

expire 缓存有效期(时间为秒)
prefix 缓存标识前缀
type 缓存类型

系统目前支持的缓存类型包:

Apachnote, Apc, Db, Eaccelerator, File, Memcache, Redis, Shmop, Sqlite, Wincache 和 Xcache.

如果S方法不传入type参数初始化的话,则读取配置文件中设置的DATA_CACHE_TIME参数值作为默认类型。同样的道理,prefix参数如果没有传入,会读取配置文件的DATA_CACHE_PREFIX参数值,expire参数没有传入则读取DATA_CACHE_TIME配置值作为默认值。

有一些缓存方式会有一些自身特殊的参数,例如Memcache缓存,还需要配置其他的参数:

S(array(
    'type'=>'memcache',
    'host'=>'192.168.1.10',
    'port'=>'11211',
    'prefix'=>'think',
    'expire'=>60
));

 缓存设置:

S('name',$vaule);  //设置缓存
S('name',$value,300);  //缓存数据300秒
S('name',$value,array('type'=>'file','expire'=>300));
//采用文件方式缓存数据300秒

读取缓存:

$value = S('name');   //读取缓存
//缓存读取的是前面缓存设置的值,这个值会受缓存初始化或者缓存设置的时候传入的参数影响。如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值

删除缓存:

S('name',null);  //删除缓存标识为name的缓存数据

  对象方式操作缓存:

$cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600));
$cache->name = 'value';		//设置缓存
$value = $cache->name; 		//获取缓存
unset($cache->name);		//删除缓存
//如果你设置了缓存前缀的话,对应的缓存操作只是对应该缓存前缀标识的,不会影响其他的缓存

 缓存队列:

简单的说就是限制缓存的数量,只需要在初始化的时候指定length参数:

S(array('type'=>'xcache','length'=>100,'expire'=>60));
//设置了length参数后,系统只会缓存最近的100条缓存数据

 

2.快速缓存

 如果你的存储数据没有有效期的需求,那么系统还提供了一个快速缓存方法F可以用来更快的操作。F方法可以支持不同的存储类型,如果是文件类型的话,默认保存在DATA_PATH目录下面。

/**
*  快速缓存Data数据
*/
    F('data',$Data);

/**
* 快速缓存Data数据,保存到指定的目录
*/
    F('data',$Data,TEMP_PATH);

/**
* 获取缓存数据
*/
    $Data = F('data');

/**
*  删除缓存数据
*/
    F('data',null);

//F方法支持自动创建缓存子目录,在DATA_PATH目录下面缓存data数据,如果User目录不存在,在自动创建:
    F('User/data',$Data);

 

 

 

 

分享到:
评论

相关推荐

    Android缓存——将数据以对象的方式缓存到本地

    本示例"Android缓存——将数据以对象的方式缓存到本地"聚焦于如何将登录的用户名和密码存储到本地,以便后续使用。 一、Android缓存概述 Android提供多种缓存机制,包括内存缓存、磁盘缓存以及更复杂的数据库缓存。...

    重建图标缓存——Delphi工具

    在"重建图标缓存——Delphi工具"中,开发者利用Delphi的强大功能创建了一个专门用于解决图标缓存问题的应用程序。 该工具的主要功能是清理并重建系统的图标缓存,以恢复正常显示。在Windows中,这个过程通常涉及...

    Android之本地缓存——LruCache(内存缓存)与DiskLruCache(硬盘缓存)统一框架

    Android之本地缓存——LruCache(内存缓存)与DiskLruCache(硬盘缓存)统一框架 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]

    《分布式对象存储——原理 架构及Go语言实现 》_胡世杰.zip

    分布式对象存储是一种大规模、高可用、可扩展的数据存储系统,主要设计用于存储和检索大量非结构化数据,如图片、视频、文档等。在互联网时代,这种技术是支撑云服务和大数据应用的基础。《分布式对象存储——原理 ...

    js,css缓存杀手——VS插件

    为了解决这个问题,“js,css缓存杀手——VS插件”应运而生。这款Visual Studio(VS)插件旨在帮助开发者批量为HTML中的`<link>`和`<script>`标签添加版本号,从而强制浏览器重新获取最新的资源,避免使用旧的缓存...

    Oracle缓存连接——Timesten体系结构 .docx

    Oracle缓存连接——Timesten体系结构是一种优化数据库性能的技术,它通过在内存中缓存Oracle数据库的部分或全部数据来加速查询和事务处理。Timesten是Oracle公司提供的一款高性能的内存数据库,专为实时应用设计,能...

    PHP缓存与静态化——PHP缓存与静态化

    内存缓存如Memcached,将数据存储在内存中,避免了磁盘I/O操作,极大地提高了数据获取速度。对于频繁访问但变化不频繁的数据,缓存可以显著减少数据库的读取次数,防止数据库服务器过载。 **22.2.1 缓存机制** ...

    python通过Canal进行数据监控后的数据缓存设计(csdn)————程序.pdf

    Python 通过 Canal 进行数据监控后的数据缓存设计是一种高效的数据处理策略,尤其适用于有大量实时或近实时数据更新的场景。在这个特定的人脸识别项目中,编码阶段的人脸特征被存储到 MySQL 数据库中,而检测阶段则...

    电子科技大学linux环境编程作业2——李林——编写带缓存的文件操作类

    从执行体程序库中的CLLogger类可知,通过缓存要写入文件中的数据,能够提高读写磁盘的性能 请编写一个文件操作的封装类,其要求如下: 需要提供open/read/write/lseek/close等函数的封装函数 该类要提供数据缓存服务...

    数据挖掘化功大法(17)——分布式缓存.docx

    在【数据挖掘化功大法(17)——分布式缓存】中,作者提到了一种常见的分布式缓存架构,通常涉及到HTTP服务器、应用服务器和后端数据库。用户首先通过HTTP服务器请求数据,应用服务器处理请求并调用数据库。在首次...

    分布式缓存RedisTemplate取不到数据的问题(csdn)————程序.pdf

    如果应用采用了缓存更新策略,比如 Cache Aside 或 Write Through,检查这些策略是否正确实施,确保数据在更新时同步到缓存。 8. **RedisTemplate 配置**: 检查 RedisTemplate 的配置,如 keySerializer、...

    2005,我们“芯芯”相印——双核心CPU缓存数据一致性浅析.pdf

    双核心CPU缓存数据一致性浅析 本文主要讨论双核心CPU缓存数据一致性问题。随着双核心CPU的出现,缓存数据一致性问题变得越来越重要。双核心CPU的设计主要有两种:独立缓存设计和共享缓存设计。独立缓存设计是指每个...

    Android LRUCache机制 缓存机制

    LRUCache的核心思想是在有限的内存空间内尽可能地存储频繁使用的数据,以便于快速访问。其主要特点包括: - **强引用**:LRUCache内部使用强引用存储数据,确保只要数据还在缓存中就不会被GC回收。 - **队列结构**:...

    LearnDroidCaching:缓存还是不缓存——这是个问题!

    缓存的基本原理是将经常访问的数据存储在内存中,以便后续快速访问,减少对磁盘或网络的依赖,从而提高数据获取速度。 一、缓存的重要性 1. 减少网络请求:对于网络数据,缓存可以避免频繁的HTTP请求,降低服务器...

    安卓Android源码——图片异步缓存两层缓存.zip

    本资源“安卓Android源码——图片异步缓存两层缓存.zip”聚焦于如何高效地实现图片的异步加载和两层缓存策略,以提升用户体验并减少内存消耗。下面我们将深入探讨这一主题。 首先,图片异步加载是移动应用中常用的...

    双缓存技术

    它主要通过利用两种不同级别的内存——通常是CPU缓存和硬盘上的磁盘缓存——来减少数据读取的延迟,提高用户体验。本文将深入探讨双缓存的概念、工作原理以及在实际Web应用中的应用。 首先,理解缓存的基本原理是至...

    ecshop源码分析——用cookie缓存sql语句

    标题中的“ecshop源码分析——用cookie缓存sql语句”揭示了本文将探讨的是电商系统ECSHOP在优化数据库查询性能方面的一个实践,即利用Cookie来缓存SQL语句。ECSHOP是一款基于PHP开发的开源电商解决方案,它的性能...

Global site tag (gtag.js) - Google Analytics