ThinkpHP 사용자 정의 Redis 처리 SESSION 의 실현 방법

3490 단어 ThinkPHPRedisSESSION
이 사례 는 ThinkpHP 사용자 정의 Redis 처리 SESSION 의 실현 방법 을 다 루 고 있다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
일상 에서 저 희 는 session 을 사용 하여 사용자 가 로그 인 한 정 보 를 저장 합 니 다.자주 사용 하 는 session 의 저장 방식 은 파일 저장(기본 값),데이터 베이스 저장,Redis 저장,memcached 등 이 있 습 니 다.세 션 을 ThinkpHP 로 처리 할 때 Redis 로 세 션 을 저장 하 는 방법 을 기록 합 니 다.
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 드라이브 의 판단 을 읽 을 수 있 습 니 다.만약 우리 가 설정 항목 을 정의 했다 면 SESSIONTYPE,새로운 Redis 대상 을 호출 하고 세 션 저장 함수 sessionset_save_handler()。
2.ThinkPHP\Library\Think\Session\\Driver 디 렉 터 리 에 Redis.class.php 파일 을 새로 만 듭 니 다.
파일 내용 은 다음 과 같 습 니 다.

<?php
namespace 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;
  }
}

이로써 레 디 스 의 세 션 처 리 를 마 쳤 다.
memcached 방법 은 Redis 와 많이 다 릅 니 다!
보충:이 사이트 의 phop 포맷 미화 도 구 를 추천 합 니 다.
php 코드 온라인 포맷 미화 도구:http://tools.jb51.net/code/phpformat
thinkpHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.ThinkpHP 입문 강좌,ThinkPHP 상용 방법 총화,smarty 템 플 릿 입문 기초 튜 토리 얼PHP 템 플 릿 기술 총화.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기