Linux安装Redis的PHP模块以及ThinkPHP的配置

ThinkPHP的缓存类写的挺完善的,官网没看见过多的介绍,本文将介绍如何在ThinkPHP中使用Redis。phpinfo()中如果看到以下信息表示Redis已经安装,并已经开启了PHP模块支持,否则进行下面操作。

redis

安装Redis

Ubuntu可以直接源里面安装(其他的请参考官方自行安装):

$ sudo apt-get install redis-server

安装完毕后,如果返回以下信息表示已安装成功:

$ redis-server --version
Redis server v=2.8.4 sha=00000000:0 malloc=jemalloc-3.4.1 bits=64 build=a44a05d76f06a5d9

查看服务状态:

$ sudo service redis-server status   # 或 /etc/init.d/redis-server ...
redis-server is running

安装PHP的Redis模块

$ sudo apt-get install php5-redis

重启Apache2

$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2

附PHP模块激活命令(上述安装已经自动激活):

$ sudo php5enmod redis

ThinkPHP中使用Redis

ThinkPHP默认的数据缓存使用的File模式,并且也没有过多介绍,只好翻了下源代码,首先S()函数的实例化缓存类:

$cache      =   Think\Cache::getInstance($type,$options);

Cache类中连接缓存:

$class  =   strpos($type,'\\')? $type : 'Think\\Cache\\Driver\\'.ucwords(strtolower($type));

定位到目标位置Think\Cache\Driver\Redis,初始化配置:

        $options = array_merge(array (
            'host'          => C('REDIS_HOST') ? : '127.0.0.1',
            'port'          => C('REDIS_PORT') ? : 6379,
            'timeout'       => C('DATA_CACHE_TIMEOUT') ? : false,
            'persistent'    => false,
        ),$options);

可以在使用的时候进行配置,当然从代码中可以看出直接在配置文件中配置(建议)也可以:

    'DATA_CACHE_PREFIX'     =>  'demo_',     // cache prefix
    'DATA_CACHE_TYPE'       =>  'Redis',    // cache type

    'DATA_CACHE_TIMEOUT'    =>  '5',    // connect timeout
    'REDIS_HOST' => '127.0.0.1',    // host
    'REDIS_PORT' => 6379    // port

ThinkPHP使用缓存是非常简单,SET与GET:

        S('hello', 'world');
        dump(S('hello'));   // string(5) "world"

我们使用Redis客户端查看一下是否确实写入了数据。

$ redis-cli 
127.0.0.1:6379> KEYS *
1) "demo_hello"
127.0.0.1:6379> GET demo_hello
"world"
127.0.0.1:6379> quit