XCache 프로젝트는 Lighttpd의 개발자 중 한 명인 moOo가 주도합니다. Lighttpd는 가장 빠른 웹 서버 애플리케이션 중 하나이며 Apache 및 기타 많은 웹 서버를 능가합니다.
영어가 좋지 않다면 오른쪽을 클릭하여 중국어로 언어를 전환할 수 있습니다.
압축된 패키지에는 Xcache의 php.ini 중국어 버전 데모와 Xcache 및 정보를 볼 수 있는 프로그램도 포함되어 있습니다.
완료되면 Apache 서비스를 다시 시작합니다.
;; 이 파일은 예시일 뿐이므로 적용하려면 php.ini에서 설정하세요
[xcache-공통]
;; 윈도우가 아닌 예:
확장자 = xcache.so
;; 윈도우 시스템 예시:
; 확장자 = php_xcache.dll
[xcache.admin]
xcache.admin.enable_auth = 켜짐
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($비밀번호)
; $your_password를 사용하여 로그인하세요. 비밀번호를 md5로 암호화하고 입력하세요.
xcache.admin.pass = ""
[엑스캐시]
; 여기에 있는 대부분의 옵션은 ini에서만 수정할 수 있으며 별도로 명시하지 않는 한 여기에 나열된 기본값은
; 기본 메모리 공유 구현 선택
xcache.shm_scheme = “mmap”
; 비활성화됨: xcache.size=0
; 활성화: xcache.size=64M 등(모든 값 > 0) 또한 시스템 mmap 상한에 주의하세요
xcache.size = 60M
; CPU 수에 맞게 설정하는 것이 좋습니다(cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 이는 단지 해시 참조 값일 뿐이며 실제 저장 항목(php 스크립트/변수)은 이 숫자를 초과할 수 있습니다
xcache.slots = 8K
; 캐시된 항목의 TTL, 0=영구
xcache.ttl = 0
; 만료된 항목을 검사하는 시간 간격, 0=검사 안함, 기타 값은 초 단위임
xcache.gc_interval = 0
; 위와 동일, 단지 변수 캐시 설정
xcache.var_size = 4M
xcache.var_count = 1
xcache.var_slots = 8K
; xcache_*() 함수 ttl 매개변수의 기본값
xcache.var_ttl = 0
; xcache_*() 함수 ttl 매개변수를 이 설정 이하로 제한합니다.
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; /dev/zero일 때 유효하지 않음
xcache.readonly_protection = 끄기
; *nix 시스템의 경우 xcache.mmap_path는 디렉터리가 아닌 파일 경로입니다(자동 생성/덮어쓰기)
; ReadonlyProtection을 활성화하려면 "/dev/*" 사용을 피하고 "/tmp/xcache"와 같은 것을 사용해야 합니다
; 다른 PHP 프로세스 그룹은 동일한 /tmp/xcache를 공유하지 않습니다
; Win32 시스템의 경우 xcache.mmap_path=파일 경로가 아닌 익명 MAP 이름입니다. 다른 소프트웨어와의 충돌을 피하기 위해 XCache라는 단어를 사용하는 것이 좋습니다.
xcache.mmap_path = "/dev/zero"
; XCache 예외가 발생할 때만 유용합니다. 비어 있거나(비활성화됨) "/tmp/phpcore/"(php로 파일에 쓸 수 있음)
xcache.coredump_directory = ""
; Windows에만 해당. XCache 개발자가 지시하지 않는 한 기본값을 유지하세요.
xcache.coredump_type = 0
; 예외가 발생하면 자동으로 캐싱을 비활성화합니다.
xcache.disable_on_crash = 끄기
; 실험적 기능 활성화(사용 가능한 경우)
xcache.experimental = 끄기
; 다음은 변경할 수 있는 요청 수준 설정입니다. ini_set, .htaccess 등을 사용할 수 있습니다.
xcache.cacher =
xcache.stat =
xcache.optimizer = 끄기
[xcache.coverager]
; 이 기능을 켜면 작동 성능이 저하됩니다.
; 이 기능은 xcache.coverager == On && xcache.coveragedump_directory == "non-null"
인 경우에만 활성화됩니다.
; 요청별 설정. ini_set, .htaccess 등이 가능합니다.
; xcache_coverager_start/stop/get/clean()과 같은 코드 프로세스 적용 범위 정보 수집 및 기능 활성화
xcache.coverager = 끄기
xcache.coverager_autostart = 켜짐
; php ini 파일 내에서만 설정
; 커버리지 뷰어 스크립트에서 이 디렉토리를 읽을 수 있는지 확인하십시오(open_basedir 참고)
xcache.coveragedump_directory = ""
그런 다음 phpinfo를 확인하여 Xcache가 적용되었는지 확인하세요. 아래와 같이
이제 웹 게시 디렉토리에 xcache와 같은 새 디렉토리를 생성하고 lib 및 htdocs 디렉토리를 내부의 공식 압축 패키지에 넣습니다.
브라우저에 http://127.0.0.1/xcache/htdocs/를 입력하면 로그인 계정과 비밀번호 대화상자가 나타납니다. 입력하면 xcache의 환경과 구성을 볼 수 있습니다. , 변수 등 .
그러나 실제로 Xcache는 변수를 캐시할 수 있을 뿐만 아니라 PHP 파일도 캐시할 수 있습니다. PHP 환경에 Xcache 확장 프로그램을 구성하면 액세스하는 모든 PHP 파일을 자동으로 캐시합니다. 코드를 수정할 필요도 없고 매우 편리하고 빠릅니다. 아래 그림과 같이 phpmyadmin에만 접속했는데, 공식 Xcache 패키지에서는 phpmyadmin의 캐시 목록을 감지할 수 있습니다.
코드는 싱글톤 모드로 매우 간단하며 애플리케이션 환경에서 직접 사용할 수 있습니다. 코드는 php5.5.12에서 완벽하게 테스트되었습니다.
$c =new Cache_Xcache();
$c->set('키', 'aaaa123');
echo $c->get('키');
Cache_Xcache::getInstance()->set('key1', '999999999999999');
echo Cache_Xcache::getInstance()->get('key1');
/**--------코드 시작--------------- ---- ----**/
클래스 Cache_Xcache {
/**
* * 싱글톤 모드는 이 클래스를 인스턴스화합니다
* *
* @var 객체
*/
보호된 정적 $_instance = null;
/**
* *기본 캐싱 전략
* *
* @var 배열
*/
protected $_defaultOptions = array('expire' => 900);
/**
*시공방법
* *
* @접속 공개
* @return 부울
*/
공개 함수 __construct() {
//분할xcache扩 확장 模块 if (!extension_loaded('xcache')) {
die('사용하기 전에 로드할 xcache 확장입니다!');
}
사실을 반환;
}
/**
* 쓰기 캐시
* *
* @접속 공개
* *
* @param string $key 캐시 키
* @param 혼합 $value 캐시 값
* @param 정수 $expire 수명
* *
* @return 부울
*/
공개 함수 세트($key, $value, $expire = null) {
//参数分析 if (!$key) {
거짓을 반환;
}
$expire = is_null($expire) ? $this->_defaultOptions['expire'] : $expire;
return xcache_set($key, $value, $expire);
}
/**
* 캐시를 읽고 실패하거나 캐시가 유효하지 않은 경우 false를 반환합니다.
* *
* @접속 공개
* *
* @param string $key 캐시 키
* *
* @return 혼합
*/
공개 함수 get($key) {
//参数分析 if (!$key) {
거짓을 반환;
}
xcache_isset($key)를 반환합니까? xcache_get($key) : 거짓;
}
/**
* * 변수를 데이터 저장소에 캐시
* *
* @접속 공개
* *
* @param string $key 데이터 키
* @param 혼합 $value 데이터 값
* @param int $expire 캐시 시간(초)
* *
* @return 부울
*/
공용 함수 추가($key, $value, $expire = null) {
//参数分析 if (!$key) {
거짓을 반환;
}
$expire = is_null($expire) ? $this->_defaultOptions['expire'] : $expire;
!xcache_isset($key) 반환 ? $this->set($key,$value,$expire) : false;
}
/**
* 지정된 캐시 삭제
* *
* @접속 공개
* *
* @param string $key 캐시 키
* *
* @return 부울
*/
공개 함수 삭제($key) {
//参数分析 if (!$key) {
거짓을 반환;
}
return xcache_unset($key);
}
/**
* 모든 캐시 변수 지우기
* *
* @접속 공개
* @return 부울
*/
공개 함수 클리어() {
xcache_clear_cache(XC_TYPE_VAR, 0)를 반환합니다.
}
/**
* 싱글톤 모드
* *
* * 이 클래스의 싱글톤 인스턴스화에 사용됩니다
* *
* @접속 공개
* @return 객체
*/
공개 정적 함수 getInstance() {
if (!self::$_instance) {
self::$_instance = 새로운 self();
}
self::$_instance를 반환합니다.
}
}