php redis 切换数据库,Thinkphp3.2.3如何切换redis作为缓存

序言

在项目中大部分情况是以文件的形式存放session等缓存文件,按常理

在读取数据速度上内存的速度是最快的,其次才是硬盘中的文件形式最

后则是在数据库中的链接和读取因此在项目访问量逐渐增大的同时,使用非关系型数据库,Redis显的更加重要。

配置

1 在php.ini中添加redis扩展extension=php_redis.dll

2 将php_redis.dll放入ext目录下

3 是用phpinfo查看php信息

bee6dca392a1

1.JPG

4 对应下载指定文件:![下载地址]http://windows.php.net/downloads/pecl/snaps/redis/

5 在common/config目录下作如下配置:

/* 数据缓存设置 */ 'DATA_CACHE_TIME' => 0, // 数据缓存有效期 0表示永久缓存 'DATA_CACHE_COMPRESS' => false, // 数据缓存是否压缩缓存 'DATA_CACHE_CHECK' => false, // 数据缓存是否校验缓存 'DATA_CACHE_PREFIX' => '', // 缓存前缀 'DATA_CACHE_TYPE' => 'Redis', // 数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator 'DATA_CACHE_PATH' => TEMP_PATH,// 缓存路径设置 (仅对File方式缓存有效) 'DATA_CACHE_KEY' => '', // 缓存文件KEY (仅对File方式缓存有效) 'DATA_CACHE_SUBDIR' => false, // 使用子目录缓存 (自动根据缓存标识的哈希创建子目录) 'DATA_PATH_LEVEL' => 1, // 子目录缓存级别 'DATA_CACHE_TIMEOUT' => '0', /* SESSION设置 */ 'SESSION_AUTO_START' => true, // 是否自动开启Session 'SESSION_OPTIONS' => array(), // session 配置数组 支持type name id path expire domain 等参数 'SESSION_TYPE' => 'Redis', // session hander类型 默认无需设置 除非扩展了session hander驱动 Redis 'SESSION_PREFIX' => 'sess', // session 前缀 sess_ 'REDIS_HOST' => '127.0.0.1', //REDIS服务器地址 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

代码如下:

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'));

}

/**

* 关闭

* @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缓存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值