Kohana 3.1 cache config bug解决办法

今天用到了kohana 3.1自带的cache并且使用memcache引擎,但是一直发现写不进缓存,开始以为自己的缓存配置有问题查了半天,没有找到解决办法,后来把缓存服务器换成本地实际可用的服务器,还是不能写入,这样就开始怀疑是程序的问题,自己手动写了一个缓存写入的代码

$mem = new Memcache;
$mem->connect("127.0.0.1", 10000);
//Memcache::set方法有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间。
$mem->set('test1', '123', 0, 60);
//Memcache::add方法的作用和Memcache::set方法类似,区别是如果 Memcache::add方法的返回值为false,表示这个key已经存在,而Memcache::set方法则会直接覆写。
$mem->add('test2', '123', 0, 60);
//Memcache::get方法的作用是获取一个key值,Memcache::get方法有一个参数,表示key。
$mem->get('test'); //输出为'123'
//Memcache::replace 方法的作用是对一个已有的key进行覆写操作,Memcache::replace方法有四个参数,作用和Memcache::set方法的相同。
$mem->replace('test', '456', 0, 60);

发现是可用,就开始查kohana自带的驱动文件,一步一步跟踪后发现,是配置文件的问题,系统没有把app里的config合并到system,google了下,发现也有朋友遇到过这样的问题,把cache.php文件用如下写法即可:

<?php defined('SYSPATH') or die('No direct script access.');
return array
(
    'memcache' => array
    (
        'driver' => 'memcache',
        'default_expire' => 3600,
        'compression' => FALSE, // Use Zlib compression (can cause issues with integers)
        'servers' => array
        (
            'local' => array (
                'host' => 'localhost', // Memcache Server
                'port' => 11211, // Memcache port number
                'persistent' => FALSE, // Persistent connection
                'weight' => 1,
                'timeout' => 1,
                'retry_interval' => 15,
                'status' => TRUE,
            ),
        ),
        'instant_death' => TRUE, // Take server offline immediately on first fail (no retry)
    ),
    'memcachetag' => array
    (
        'driver' => 'memcachetag',
        'default_expire' => 3600,
        'compression' => FALSE, // Use Zlib compression (can cause issues with integers)
        'servers' => array (
            'local' => array(
                'host' => 'localhost', // Memcache Server
                'port' => 11211, // Memcache port number
                'persistent' => FALSE, // Persistent connection
                'weight' => 1,
                'timeout' => 1,
                'retry_interval' => 15,
                'status' => TRUE,
            ),
        ),
        'instant_death' => TRUE,
    ),
    'apc' => array
    (
        'driver' => 'apc',
        'default_expire' => 3600,
    ),
    'wincache' => array
    (
        'driver' => 'wincache',
        'default_expire' => 3600,
    ),
    'sqlite' => array
    (
        'driver' => 'sqlite',
        'default_expire' => 3600,
        'database' => APPPATH . 'cache/kohana-cache.sql3',
        'schema' => 'CREATE TABLE caches(id VARCHAR(127) PRIMARY KEY, tags VARCHAR(255), expiration INTEGER, cache TEXT)',
    ),
    'eaccelerator' => array
    (
        'driver' => 'eaccelerator',
    ),
    'xcache' => array
    (
        'driver' => 'xcache',
        'default_expire' => 3600,
    ),
    'file' => array
    (
        'driver' => 'file',
        'cache_dir' => APPPATH . 'cache',
        'default_expire' => 3600,
    )
);

发表评论

电子邮件地址不会被公开。 必填项已用*标注