MemCache

Материал из Wiki

Перейти к: навигация, поиск

Простая библиотека для базовых функций MemCache

<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

    class CI_Memcache {

       private $memcache;
       private $memcache_host = '127.0.0.1';
       private $memcache_port = 11211;
       private $memcache_compress = 0;
       private $timelife;

       /**
        * Открываем новое соединение с Memcache
        *
        * @access   public
        */
       public function __construct()
       {
          if($this->memcache_host && $this->memcache_port > 0)
          {
             $this->memcache = memcache_connect($this->memcache_host, $this->memcache_port);

             if($this->memcache_compress > 0)
             {
                $this->memcache_compress = 'MEMCACHE_COMPRESSED';
             }
          }

          log_message('debug', 'MemCache Class Initialized');
       }

       /**
        * Подгружаем файл кэша
        *
        * @access   public
        * @param    string Имя файла
        * @param    string Время жизни файла
        * @return   string
        */
       public function load($valueID = '')
       {
          if($valueID)
          {
             $valueID = md5($valueID);
             

             return memcache_get($this->memcache, $valueID);
          }
          else
          {
             return FALSE;
          }
       }

       /**
        * Сохраняем файл кэша
        *
        * @access   public
        * @param    string Контент для файла
        * @param    string Имя файла
        * @return   string
        */
       public function save($value = '', $valueID = '', $timelife = 0)
       {
          if($value && $valueID && $timelife > 0)
          {
             $valueID = md5($valueID);
             $this->timelife = $timelife;

             return memcache_set($this->memcache, $valueID, $value, $this->memcache_compress, $this->timelife);
          }
          else
          {
             return FALSE;
          }
       }

       /**
        * Удаляем файл кэша
        *
        * @access   public
        * @param    string Имя файла
        * @return   boolean
        */
       public function delete($valueID = '')
       {
          $valueID = md5($valueID);

          if(memcache_delete($this->memcache, $valueID))
          {
             return TRUE;
          }
          else
          {
             return FALSE;
          }
       }

       /**
        * Закрываем соединение с Memcache
        *
        * @access   public
        * @return   boolean
        */
       public function __destruct()
       {
          if($this->memcache)
          {
             if(memcache_close($this->memcache))
             {
                return TRUE;
             }
             else
             {
                return FALSE;
             }
          }
          else
          {
             return FALSE;
          }
       }
    }

    ?>
Источник — «http://code-igniter.ru/wiki/MemCache»
Личные инструменты