많은 양의 트래픽이 포함된 프로젝트에서 캐시를 합리적으로 사용하면 데이터베이스에 대한 부담을 줄이고 사용자 경험을 향상시킬 수 있습니다. 즉, 비실시간 요구사항을 전제로 짧은 시간(수초) 내에 표시에 사용되는 데이터를 데이터베이스를 직접 읽지 않고 캐시에서 가져오므로 데이터의 읽기 부담을 효과적으로 줄일 수 있습니다. 데이터 베이스. 다음은 PHP 언어에서 memcache 사용에 대한 기록입니다.
먼저 다양한 구성에 따라 읽을 수 있는 memcachepool을 만들고 다양한 memcache 인스턴스를 생성합니다. $memcache->addServer($host,$port,$flag)를 사용하여 연결 풀에 Memcache 서버를 추가합니다. 코드 예는 다음과 같습니다.
class memcachePool{ private static $instance; private $memcacheList = array(); private function __construct(){ } public static function getInstance(){ if(self::$instance != null) return self::$instance; self::$instance = new memcachePool(); return self::$instance; } /** * get memcache object from pool * @param [type] $host 服务器 * @param [type] $port 端口 * @param [type] $flag 控制是否使用持久化连接。默认TRUE * @return [type] */ public function getMemcache($host,$port,$flag){ if(isset($this->memcacheList[$host.$port])) return $this->memcacheList[$host.$port]; $memcache = new Memcache(); // 向连接池中添加一个memcache服务器 $memcache->addServer($host,$port,$flag); //开启大值自动压缩,第一个参数表示处理数据大小的临界点,第二个参数表示压缩的比例,默认为0.2 $memcache->setCompressThreshold(2000,0.2); $this->memcacheList[$host.$port] = $memcache; return $memcache; } }
그런 다음 추가, 설정, 가져오기, 플러시, 삭제 등과 같은 일반적인 Memcache 메서드가 포함된 메서드 클래스를 구현합니다. 여기에는 dlufmemcache
class dlufMemcache{ private $memcache = null; function __construct($host,$port){ $this->memcache = memcachepool::getInstance()->getMemcache($host,$port,true); } /** * memcache set value * @param [type] $key 键 * @param [type] $value 值 * @param integer $expire 到期的时间,如果此值设置为0表明此数据永不过期 * @param integer $flag 标志位 使用MEMCACHE_COMPRESSED指定对值进行压缩(使用zlib) * @param [type] $serializetype */ public function set($key,$value,$expire=0,$flag=0,$serializetype=null){ if($serializetype == 'json' && is_array($value)){ $value = json_encode($value); } $this->memcache->set($key,$value,$flag,$expire); } /** * 从服务端查找元素 * @param [type] $key * @return [type] */ public function get($key){ return $this->memcache->get($key); } /** * 增加一个条目到缓存服务器 * @param [type] $key * @param [type] $value * @param integer $expire * @param integer $flag * @param [type] $serializetype */ public function add($key,$value,$expire=0,$flag=0,$serializetype=null){ if($serializetype == 'json' && is_array($value)){ $value = json_encode($value); } $ret = $this->memcache->add($key,$value,$flag,$expire); return $ret; } /** * 清洗(删除)已经存储的所有的元素 * @return [type] */ public function flush(){ return $this->memcache->flush(); } /** * 从服务端删除一个元素 * @param [type] delete 参数:key要删除的元素的key 删除该元素的执行时间 timeout如果值为0,则该元素立即删除。 * @return [type] */ public function delete($key){ $ret = $this->memcache->delete($key,0); return $ret; } }
라는 이름이 붙습니다. 그런 다음 dlufmemcache를 호출합니다.
1 $memcache = new dlufMemcache('127.0.0.1',11211); 2 $memcache->set('memcache','come on dluf&baidu !!!!!!'); 3 $ret = $memcache->get('memcache'); 4 echo print_r($ret,true);
The running 출력이 표시됩니다.
PHP에 대해 더 알고 싶으십니까? 그렇다면 서둘러 PHP 중국어 웹사이트에서 PHP 비디오 튜토리얼을 따라해 보세요!
위 내용은 PHP는 MEMCACHE 캐싱 기술 예제를 호출합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!