Thinkphp - 缓存的使用 (Memcache)

  ThinkPHP支持文件方式、共享内存方式和数据库方式等缓存方式。 
由于ThinkPHP支持多种缓存,因此在使用以前缓存的方式和参数进行配置。php

缓存方式

  File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache数据库

缓存参数

  根据不一样的缓存方式存在不一样的参数缓存

通用缓存参数 
expire 缓存有效期(默认由DATA_CACHE_TIME参数配置) 
length 缓存队列长度(默认为0) 
queue 缓存队列方式(默认为file 还支持xcache和apc)服务器

Memcachetcp

host 缓存服务器地址( 默认为127.0.0.1) 
port 端口(默认为MEMCACHE_PORT参数或者11211) 
timeout 缓存超时(默认由DATA_CACHE_TIME参数设置) 
persistent 长链接(默认为false)post

File(文件缓存)性能

temp 缓存目录(默认由DATA_CACHE_PATH参数配置)spa

获取缓存实例

1. 使用配置文件方式(推荐)

config.phpcode

    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
//缓存方式 'DATA_CACHE_TYPE' => 'Memcache', //v\ 缓存服务器地址 'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211', //指定默认的缓存时长为3600 秒,没有会出错 'DATA_CACHE_TIME' => '3600',
    
    
    
    
  • 1
  • 2
//获取缓存实例 $cache = Cache::getInstance();

2.使用代码的形式获取

    
    
    
    
  • 1
  • 2
  • 3
  • 4
$Cache = Cache::getInstance('缓存方式','缓存参数') $Cache = Cache::getInstance('Memcache',array('host'=>'127.0.0.1','port'=>11211))); $Cache->setOptions('expire',3600); $Cache->setOptions('persistent',true);

存取缓存数据

缓存实例对象,快捷缓存方式orm

1.经过缓存实例对象进行操做

    
    
    
    
  • 1
  • 2
  • 3
$Cache->set('name','ThinkPHP'); // 缓存name数据 $value = $Cache->get('name'); // 获取缓存的name数据 $Cache->rm('name'); // 删除缓存的name数据

or

    
    
    
    
  • 1
  • 2
  • 3
$Cache->name = 'ThinkPHP'; $value = $Cache->name; Unset($Cache->name);

2. 快捷缓存方式

使用快捷缓存方式,要求必须已经配置缓存方式

  为了进一步简化缓存存取操做,ThinkPHP把全部的缓存机制统一成一个S方法来进行操做,因此在使用不一样的缓存方式的时候并不须要关注具体的缓存细节。

S方法

    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
// 使用data标识缓存$Data数据 S('data',$Data); // 缓存$Data数据3600秒 S('data',$Data,3600); // 获取缓存数据 $Data = S('data'); // 删除缓存数据 S('data',NULL);

cache方法

    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
$cache = cache(array('type'=>'xcache','expire'=>60)); $cache->set('name',$value); $cache->get('name'); $cache->rm('name'); or $cache = cache(array('type'=>'xcache','expire'=>60)); $cache->name = $value; echo $cache->name; unset($cache->name);

数据库缓存

1. 数据库查询缓存

对于及时性要求不高的数据查询,咱们可使用查询缓存功能来提升性能,并且无需本身使用缓存方法进行缓存和获取。

    
    
    
    
  • 1
  • 2
$Model->cache(true)->select(); $Model->cache('cache_name',60)->select();

2. SQL解析缓存

由于ThinkPHP的ORM机制,全部的SQL都是动态生成的,而后由数据库驱动执行。 
因此若是你的应用有大量的SQL查询需求,那么能够开启SQL解析缓存以减小SQL解析提升性能。

    
    
    
    
  • 1
'DB_SQL_BUILD_QUEUE' => 'xcache',
相关文章
相关标签/搜索