Thinkphp3.2.3如何切換redis作為緩存

序言

在項目中大部分情況是以文件的形式存放session等緩存文件,按常理
在讀取數(shù)據(jù)速度上內(nèi)存的速度是最快的,其次才是硬盤中的文件形式最
后則是在數(shù)據(jù)庫中的鏈接和讀取因此在項目訪問量逐漸增大的同時,使用非關(guān)系型數(shù)據(jù)庫,Redis顯的更加重要。

配置

1 在php.ini中添加redis擴(kuò)展extension=php_redis.dll
2 將php_redis.dll放入ext目錄下
3 是用phpinfo查看php信息

1.JPG

4 對應(yīng)下載指定文件:![下載地址]http://windows.php.net/downloads/pecl/snaps/redis/
5 在common/config目錄下作如下配置:
/* 數(shù)據(jù)緩存設(shè)置 */ 'DATA_CACHE_TIME' => 0, // 數(shù)據(jù)緩存有效期 0表示永久緩存 'DATA_CACHE_COMPRESS' => false, // 數(shù)據(jù)緩存是否壓縮緩存 'DATA_CACHE_CHECK' => false, // 數(shù)據(jù)緩存是否校驗緩存 'DATA_CACHE_PREFIX' => '', // 緩存前綴 'DATA_CACHE_TYPE' => 'Redis', // 數(shù)據(jù)緩存類型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator 'DATA_CACHE_PATH' => TEMP_PATH,// 緩存路徑設(shè)置 (僅對File方式緩存有效) 'DATA_CACHE_KEY' => '', // 緩存文件KEY (僅對File方式緩存有效) 'DATA_CACHE_SUBDIR' => false, // 使用子目錄緩存 (自動根據(jù)緩存標(biāo)識的哈希創(chuàng)建子目錄) 'DATA_PATH_LEVEL' => 1, // 子目錄緩存級別 'DATA_CACHE_TIMEOUT' => '0', /* SESSION設(shè)置 */ 'SESSION_AUTO_START' => true, // 是否自動開啟Session 'SESSION_OPTIONS' => array(), // session 配置數(shù)組 支持type name id path expire domain 等參數(shù) 'SESSION_TYPE' => 'Redis', // session hander類型 默認(rèn)無需設(shè)置 除非擴(kuò)展了session hander驅(qū)動 Redis 'SESSION_PREFIX' => 'sess', // session 前綴 sess_ 'REDIS_HOST' => '127.0.0.1', //REDIS服務(wù)器地址 192.168.1.241 'REDIS_PORT' => 6379, //REDIS連接端口號 22122 'SESSION_EXPIRE' => 3600, //SESSION過期時間 3600 'VAR_SESSION_ID' => 'PFWSSS',//sessionID的提交變量

添加文件

在核心目錄下(Library\Think\Session\Driver)載入文件Redis.class.php
代碼如下:
<?php

namespace Think\Session\Driver;

class Redis {

//Redis連接對象
private $redis = null;
//Session過期時間
private $lifeTime = 3600;

/**
 * 打開方法
 * @param type $path
 * @param type $name
 * @return type
 */
public function open($path, $name) {
    $this->lifeTime = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : ini_get('session.gc_maxLifetime');
    $this->redis = new \Redis();
    return $this->redis->connect(C('REDIS_HOST'), C('REDIS_PORT'));
}

/**
 * 關(guān)閉
 * @return type
 */
public function close() {
    $this->gc($this->lifeTime);
    return $this->redis->close();
}

/**
 * 讀取
 * @param string $id
 * @return type
 */
public function read($id) {
    $id = C('SESSION_PREFIX') . $id;
    $data = $this->redis->get($id);
    return $data ? $data : '';
}

/**
 * 寫入
 * @param string $id
 * @param type $data
 * @return type
 */
public function write($id, $data) {
    $id = C('SESSION_PREFIX') . $id;
    return $this->redis->set($id, $data, $this->lifeTime);
}

/**
 * 銷毀
 * @param string $id
 */
public function destroy($id) {
    $id = C('SESSION_PREFIX') . $id;
    $this->redis->delete($id);
}

/**
 * 垃圾回收
 * @param type $maxLifeTime
 * @return boolean
 */
public function gc($maxLifeTime) {
    //獲取所有的空sess并刪除
    //@todo
    return true;
}

}

在使用客戶端開啟redis這樣即可使用redis緩存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容