Thinkphp - 缓存的使用 (Memcache)

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

缓存方式

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

缓存参数

  根据不同的缓存方式存在不同的参数

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

Memcache

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

File(文件缓存)

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

获取缓存实例

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

config.php

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

2.使用代码的形式获取

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

存取缓存数据

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

1.通过缓存实例对象进行操作

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

or

$Cache->name = 'ThinkPHP'; 
    $value = $Cache->name; 
    Unset($Cache->name);

2. 快捷缓存方式

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

  为了进一步简化缓存存取操作,ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。

S方法

// 使用data标识缓存$Data数据
S('data',$Data);
// 缓存$Data数据3600秒
S('data',$Data,3600);
// 获取缓存数据
$Data = S('data');
// 删除缓存数据
S('data',NULL);

cache方法

$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. 数据库查询缓存

对于及时性要求不高的数据查询,我们可以使用查询缓存功能来提高性能,而且无需自己使用缓存方法进行缓存和获取。

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

2. SQL解析缓存

因为ThinkPHP的ORM机制,所有的SQL都是动态生成的,然后由数据库驱动执行。
所以如果你的应用有大量的SQL查询需求,那么可以开启SQL解析缓存以减少SQL解析提高性能。

'DB_SQL_BUILD_QUEUE' => 'xcache',
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值