YII cache

6945 단어 cache
1. 데이터 캐 시
일반적인 캐 시 작업 방법 get, set, add, delete, flush 기본 캐 시 파일 을 protected / runtime / 디 렉 터 리 에 저장 합 니 다.
ApcCache 확장 설정
STEP 1: php 다운로드apc. dllhttp://downloads.php.net/pierre/ 두 번 째 단계: php. ini 가 apc 확장 모듈 을 지원 하도록 합 니 다.phpapc. dll 을 ext 디 렉 터 리 에 넣 고 php. ini 가입 을 엽 니 다.
extension=php_apc.dll
apc.rfc1867 = on
apc.max_file_size = 100M
upload_max_filesize = 100M
post_max_size = 100M
apc.slam_defense = 0
apc.write_lock = 1 

설정 파일 에 캐 시 를 설정 하면 여러 개 를 설정 할 수 있 습 니 다.코드 는 다음 과 같다.
'ApcCache'=>array(
    'class'=>'CApcCache',  
),	
'Dbcache'=>array(
    'class'=>'CDbCache',
),
'FileCache'=>array(
    'class'=>'CFileCache',
    'cachePath'=> '/Webroot/trackstar/protected/runtime/cache/test',
 ),	
'MemCache'=>array(
    'class'=>'CMemCache',
    'servers'=>array(
        array(
            'host'=>'server1',
            'port'=>11211,
            'weight'=>60,
        ),
        array(
            'host'=>'server2',
            'port'=>11211,
            'weight'=>40,
        ),
    ),
),

session cache 는 apc cache 를 열 때 사용 할 수 있 습 니 다. seesion 을 apc 에 저장 하 는 것 이 파일 에 저장 하 는 것 보다 빠 릅 니 다.
'cache' => array(
	'class' => 'CApcCache',
),
'session' => array(
	'class' => 'CCacheHttpSession',
),

yii session. save 를 사용 하려 면handler = memcache 사용자 정의 session 관리 방법 을 확장 하려 면 CHttpSession 을 계승 하고 openSession, readSession, writeSession, destroySession, gcSession 등 다섯 가지 방법 만 있 으 면 첨부 파일 을 볼 수 있 습 니 다.
이런 구성 요소 의 방식 은 매우 유연 하 다.                              | Yii 의 웹 앱 은 CModule 을 계승 하고 CModule 은 를 다시 썼 습 니 다.set,__get      | 마술 방법, 그들의 역할 은 설정 파일 에서 알 수 없 는 component 를 사용 하 는 것 입 니 다.  | 이름 설정 과 호출.매우 민첩 하 다.시스템 은 단지 코어 컴 포 넌 트 | 호출 방식 을 약 속 했 을 뿐이다.getCache, getDb 등.                         --------------------------------------------------------------------------------------
디 버 깅 을 위해 서 는 현재 사용자 의 session ID 를 알 아야 할 때 가 있 습 니 다. 이 값 은 Yii: app () - > session - > session ID 에 있 습 니 다.마지막 으로 사용자 가 로그 인 (logout) 을 종료 할 때 흔적 을 제거 해 야 합 니 다. 사용 할 수 있 습 니 다: Yii: app () - > session - > clear () 는 모든 session 변 수 를 이동 한 다음 Yii: app () - > session - > destroy () 를 호출 하여 서버 에 저 장 된 데 이 터 를 이동 합 니 다.
다음 방법 으로 Yii:: app () - > FileCache 를 호출 합 니 다.Yii::app()->Dbcache;
액세스, 캐 시 설정 도 간단 합 니 다. $cacheObj - > set ($key, $value, $expire); $cacheObj->get($key);
 
$cache=Yii::app()->cache; $cache['var1']=$value1;  // $cache - > set ('var 1', $value 1); $value2=$cache['var2'];  // $value 2 = $cache - > get (var 2) 에 해당 합 니 다.
 
CDbConnection::cache()
$sql = 'SELECT * FROM tbl_post LIMIT 20';
$dependency = new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_post');
$rows = Yii::app()->db->cache(1000, $dependency)->createCommand($sql)->queryAll();

CActiveRecord::cache()
$dependency = new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_post');
$posts = Post::model()->cache(1000, $dependency)->findAll();

 
2. 세 션 캐 시
세 션 캐 시 는 웹 페이지 의 한 세 션 을 캐 시 하 는 것 을 말 합 니 다. 세 션 캐 시 를 사용 하려 면 컨트롤 러 보기 스 크 립 트 에서 호출 CController::beginCache()CController::endCache() 을 사용 하 십시오.이 두 가지 방법 은 시작 과 끝 에 포 함 된 페이지 내용 이 캐 시 됩 니 다.
<?php if($this->beginCache('part',array('cacheID'=>'ApcCache','varyByParam'=>array('pid','nid')))) { ?>
this is part test cache<br>
<?php $this->endCache(); } ?>

그 중에서 part 는 캐 시 후의 $key 값 이 고 this is part test cache < br > 는 캐 시 후의 $value 값 이 며 cacheID 는 main. php 의 설정 입 니 다. 기본 값 은 cache 입 니 다. 필요 없습니다.
 
3. 페이지 캐 시
페이지 캐 시 는 전체 페이지 의 내용 을 캐 시 하 는 것 을 말한다.
public function filters(){        
	return array(   
    	array(  
	    	'COutputCache+index',   
	    	'duration' => 120,
	    	'cacheID' => 'MemCache',
	    	'varyByParam'=>array('id'),     
	    ),     
	);     
}

그 중에서 도 COutpuutCache + index 를 볼 수 있 습 니 다. COutpuutCache 류 캐 시 파일 을 사용 한 다 는 뜻 입 니 다. 뒤에 있 는 index 는 캐 시 actionIndex 함수 만 말 합 니 다. 캐 시 다른 것 이 필요 하 다 면 COutpuutCache + index, hello, test... 뒤에 있 는 + 가 없 으 면 기본적으로 캐 시 전체 컨트롤 러 에 있 는 모든 방법 입 니 다.이 filter 는 COutpuutCache 필 터 를 사용 하여 프로그램 전 체 를 캐 시 하도록 설정 되 어 있 습 니 다.
varyby Param 은 우리 가 이전에 언급 한 매우 중요 한 옵션 이다.스트레스 를 줄 이기 위해 캐 시 된 내용 키 를 작성 하 는 작업량 을 줄 이기 위해 키 가 프레임 워 크 에 의 해 자동 으로 제어 되 는 것 을 허용 합 니 다.GET 매개 변수 에서 온 일련의 이름 을 지정 한 것 이다.요청 을 시작 할 때 시스템 은 이 id 를 유일한 key 의 일부분 으로 사용 하여 캐 시 내용 을 만 들 수 있 습 니 다.'varyByParam' = > array ('id') 를 지정 함으로써 COutputCache 는 입력 요청 문자열 에 있 는 id 를 기반 으로 남 은 작업 을 완 료 했 습 니 다.여기 에는 많은 옵션 이 있 습 니 다. 저희 가 COutpuutCache 를 사용 하여 데 이 터 를 캐 시 할 때 key 이름 을 자동 으로 생 성 하 는 정책 으로 사용 합 니 다.다음은 사용 할 수 있 는 목록 입 니 다:
  • varyby Route: 이 옵션 을 true 로 설정 하면 구체 적 으로 요청 한 경로 부분 은 독립 식별 자의 일부분 으로 캐 시 데 이 터 를 만 드 는 데 사 용 됩 니 다.따라서 캐 시 내용 을 구별 하기 위해 서 는 contrller 와 acion 의 조합 을 요청 할 수 있 습 니 다.
  • varyBySession: 이 옵션 을 true 로 설정 하면 유일한 session id 로 캐 시 내용 을 구분 합 니 다.모든 사용자 의 session 은 다 르 지만 캐 시 서 비 스 를 위해 사용 할 수 있 습 니 다.
  • varyByParam: 앞에서 말 한 바 와 같이 입력 한 GET 의 매개 변수 로 캐 시 내용 을 구분 합 니 다.
  • varyByExpression: 이 옵션 에 PHP 표현 식 을 설정 하면 해당 표현 식 의 결 과 를 사용 하여 캐 시 내용 을 구분 할 수 있 습 니 다.

  • 따라서 ProjectController 클래스 에 위의 필 터 를 설정 하면 한 항목 에 대한 요청 내용 이 캐 시 되 고 2 분 후에 캐 시 를 새로 고 칩 니 다.한 항목 의 세부 사항 을 캐 시 한 다음 캐 시 를 새로 고침 하 는 방법 을 사용 할 수 있 습 니 다.모든 업 데 이 트 는 생존 주기 가 끝 난 후에 야 관찰 할 수 있다.
    모든 페이지 의 내용 을 캐 시 하 는 것 은 성능 을 크게 향상 시 키 는 방식 이지 만 모든 프로그램의 모든 페이지 를 캐 시 하 는 것 은 의미 가 없습니다.위의 세 가지 방식 으로 요약 합 니 다. 데이터, 세 션, 페이지 캐 시 는 대부분의 실제 항목 에서 필요 합 니 다.Yii 에서 제공 하 는 캐 시 기능 만 간단히 알 아 봤 습 니 다.Yii 의 캐 시 기능 을 신속하게 볼 수 있 도록 도움 이 되 기 를 바 랍 니 다.
     
    4. 동적 내용
    동적 내용 이란 세 션 출력 이 세 션 캐 시 에 포 함 된 내용 에서 도 캐 시 되 지 않 는 다 는 것 을 말한다.포 함 된 내용 이 캐 시 에서 꺼 내 더 라 도 동적 내용 이 모든 시간 에 동적 이 되도록 매번 다시 생 성 해 야 합 니 다.이 때문에 우 리 는 동적 내용 이 일부 방법 이나 함 수 를 통 해 생 성 되 기 를 요구한다.

    좋은 웹페이지 즐겨찾기