Memcache IN ThinkPHP

ThinkPHP中启用Memcache缓存是比较简单的。

首先导入一下扩展缓存类,在TP的扩展完整包中,然后在项目配置文件config.php添加以下配置信息。

其中,Memcache默认端口是11211

设置缓存为Memcache
'DATA_CACHE_TYPE' => 'Memcache',
'MEMCACHE_HOST'   =>  'tcp://127.0.0.1:11211',
'DATA_CACHE_TIME' => '3600',

方法直接使用S函数即可。

当然,也可以清除S中的所有缓存

$cache  = Cache::getInstance();
$cache ->clear();

《Memcache IN ThinkPHP》有1个想法

  1. 问下楼主,当把'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211',
    配置成别的主机或端口时,怎么不起作用?
    'MEMCACHE_HOST' => 'tcp://192.168.0.194:11277',

    S('test','ok');
    使用S函数时,提示无法连接127.0.0.1:11211

    我看了一下TP的Cache类,发现getInstance方法可能存在BUG,Cache.class.php的getInstance没有从配置文件中读取配置,而是从S超级方法中读取$type进行传参。

    S方法:S($name, $value='', $expire='', $type='')

    $type支持的参数:
    $options = array
    (
    'host' => '127.0.0.1',
    'port' => 11211,
    'timeout' => false,
    'persistent' => false
    );

    如果没有指定$type参数,ThinkPHP默认强制连接11211端口了,图方便的话可以根据根据自己的需要完善一下Memcache类,如瘵CacheMemcache.class.php中第43行的端口改为读取项目配置信息。

发表评论

电子邮件地址不会被公开。