>백엔드 개발 >PHP 튜토리얼 >PHP 메모리 캐시 Memcached 클래스 example_php 팁

PHP 메모리 캐시 Memcached 클래스 example_php 팁

WBOY
WBOY원래의
2016-05-16 20:29:001131검색

이 기사의 예에서는 PHP 메모리 캐시 Memcached 클래스를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요.

구체적인 구현 방법은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
클래스 MemcacheModel {
비공개 $mc = null
/**
* 서버 추가 및 memcahced 객체 생성에 사용되는 구축 방법
*/
함수 __construct(){
$params = func_get_args()
$mc = 새로운 멤캐시
//Memcache 서버가 여러 개인 경우
if( count($params) > 1){
foreach($params를 $v로){
call_user_func_array(array($mc, 'addServer'), $v)
}
//Memcache 서버가 하나만 있는 경우
} 다른 {
call_user_func_array(array($mc, 'addServer'), $params[0])
}
$this->mc=$mc; }
/**
* memcached 개체 가져오기
* @return 객체 memcached 객체
*/
함수 getMem(){
$this->mc 반환
}
/**
* mem이 성공적으로 연결되었는지 확인하세요
* @return bool 연결에 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다
*/
함수 mem_connect_error(){
$stats=$this->mc->getStats()
if(비어 있음($stats)){
거짓을 반환
}그밖에{

사실을 반환합니다. }
}

개인 함수 addKey($tabName, $key){
$keys=$this->mc->get($tabName)
if(emptyempty($keys)){
$키=배열()
}
//키가 존재하지 않으면 키를 추가하세요
if(!in_array($key, $keys)) {
$keys[]=$key; //이 테이블의 키에 새 키를 추가합니다
$this->mc->set($tabName, $keys, MEMCACHE_COMPRESSED, 0)
return true; // 존재하지 않음 return true
}그밖에{
return false; //존재함 return false
}
}
/**
* Memcache에 데이터 추가
* @param string $tabName 캐시해야 할 데이터 테이블 이름
* @param string $sql sql을 Memcache의 키로 사용
* @param 혼합 $data 캐시할 데이터
*/
함수 addCache($tabName, $sql, $data){
$key=md5($sql)
//존재하지 않는 경우
if($this->addKey($tabName, $key)){
$this->mc->set($key, $data, MEMCACHE_COMPRESSED, 0)
}
}
/**
* memcahce에 저장된 데이터 가져오기
* @param string $sql SQL 키 사용
* @return 혼합은 캐시의 데이터를 반환합니다
*/
함수 getCache($sql){
$key=md5($sql)
return $this->mc->get($key)
}

/**
* 동일한 테이블과 관련된 모든 캐시 삭제
* @param string $tabName 데이터 테이블의 테이블 이름
*/
함수 delCache($tabName){
$keys=$this->mc->get($tabName)
//동일 테이블의 모든 캐시 삭제
if(!emptyempty($keys)){
foreach($keys를 $key로){
$this->mc->delete($key, 0); //0은 즉시 삭제를 의미합니다.
}
}
//테이블의 모든 SQL 키를 삭제합니다
$this->mc->delete($tabName, 0)
}
/**
* 단일 문의 캐시 삭제
* @param string $sql SQL 문이 실행되었습니다
*/
함수 삭제($sql){
$key=md5($sql)
$this->mc->delete($key, 0); //0은 즉시 삭제를 의미합니다.
}
}
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.