>백엔드 개발 >PHP 튜토리얼 >PHP는 MEMCACHE 캐싱 기술 예제를 호출합니다.

PHP는 MEMCACHE 캐싱 기술 예제를 호출합니다.

little bottle
little bottle앞으로
2019-04-20 10:42:182455검색

많은 양의 트래픽이 포함된 프로젝트에서 캐시를 합리적으로 사용하면 데이터베이스에 대한 부담을 줄이고 사용자 경험을 향상시킬 수 있습니다. 즉, 비실시간 요구사항을 전제로 짧은 시간(수초) 내에 표시에 사용되는 데이터를 데이터베이스를 직접 읽지 않고 캐시에서 가져오므로 데이터의 읽기 부담을 효과적으로 줄일 수 있습니다. 데이터 베이스. 다음은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제