首页 > 语言 > PHP > 正文

ThinkPHP自定义Redis处理SESSION的实现方法

2024-05-04 23:46:02
字体:
来源:转载
供稿:网友
这篇文章主要介绍了ThinkPHP自定义Redis处理SESSION的实现方法,结合实例形式分析了ThinkPHP相关数据库配置与自定义Redis处理session的实现技巧,需要的朋友可以参考下
 

本文实例讲述了ThinkPHP自定义Redis处理SESSION的实现方法。分享给大家供大家参考,具体如下:

日常中我们都会使用到session来保存用户登录的信息,常用的session的保存方式有:文件保存(默认)、数据库保存、Redis保存、memcached等。这里主要记录一下在用ThinkPHP处理session用Redis来保存session的用法。

1.在配置项中定义:

'SESSION_TYPE' => 'Redis', //session保存类型'SESSION_PREFIX' => 'sess_', //session前缀'REDIS_HOST' => '127.0.0.1' //REDIS服务器地址'REDIS_PORT' => 6379, //REDIS连接端口号'SESSION_EXPIRE' => 3600, //SESSION过期时间

可以ThinkPHP/Common/functions.php文件中找到定义session的方法,大约在1179行左右读取session驱动的判断。如果我们定义了配置项SESSION_TYPE,则会new一个Redis对象并调用会话存储函数session_set_save_handler()。

2.在ThinkPHP/Library/Think/Session/Driver目录下新建Redis.class.php文件

文件内容如下:

<?phpnamespace Think/Session/Driver;class Redis {//  Redis连接对象  private $redis;//  Session过期时间  private $expire;  /**   * 打开方法   * @param type $path   * @param type $name   * @return type   */  public function open($path, $name) {  $this->expire = 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() {  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->expire);  }  /**   * 销毁   * @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) {  return true;  }}

至此就完成了Redis对session的处理。

memcached的方法和Redis差不多一样!



注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选