/**
  * retrieve a simple key/value pair from memcache
  *
  * @param String $key
  * @param String_type $ns
  * @param String $bucket
  */
 public static function retrieve($key, $ns = self::DEFAULT_NS, $bucket = self::DEFAULT_BUCKET)
 {
     $cache = MemcacheManager::getInstance()->cache;
     $cache->setBucket($bucket);
     $value = $cache->get($key);
     if ($value) {
         return $value;
     }
 }
Esempio n. 2
0
 /**
  * deletes object from memcache before deleting it from the db
  *
  * @author Matthias Pfefferle
  * @param Doctrine_Event $pEvent
  */
 public function preDelete(Doctrine_Event $pEvent)
 {
     $lInvoker = $pEvent->getInvoker();
     MemcacheManager::getInstance()->getCache()->remove($lInvoker->getMemcacheId());
 }
Esempio n. 3
0
 /**
  * use our memcache instead database when calling method
  *
  * @author Matthias Pfefferle
  * @param int $pPk
  * @return array of user objects
  */
 public function retrieveByPkTableProxy($pPk)
 {
     $lInvoker = $this->getInvoker();
     $lClassName = get_class($lInvoker);
     $lObject = null;
     $lMemcacheId = strtolower($lClassName) . "-" . $pPk;
     // first try GLOBALS cache
     if (isset($GLOBALS['CACHE'][strtoupper($lClassName)][$pPk])) {
         $lObject = $GLOBALS['CACHE'][strtoupper($lClassName)][$pPk];
         if ($lObject) {
             $cache = 'yiidGlobalCache';
         }
     } else {
         // if not found try memcached
         $lObject = self::getFromMemcache($lMemcacheId);
         $cache = 'yiidMemcache';
     }
     if ($lObject) {
         try {
             sfContext::getInstance()->getLogger()->info('{yiidGlobalCache} found a ' . $lClassName . ' with id ' . $pPk . ' in ' . $cache);
         } catch (Exception $e) {
         }
         // store in GLOBALS cache
         $GLOBALS['CACHE'][strtoupper($lClassName)][$pPk] = $lObject;
         return $lObject;
     } else {
         $lObject = $lInvoker->getTable()->find($pPk);
         if ($lObject) {
             MemcacheManager::getInstance()->getCache()->set($lMemcacheId, serialize($lObject));
             $GLOBALS['CACHE'][strtoupper($lClassName)][$pPk] = $lObject;
             return $lObject;
         } else {
             return null;
         }
     }
 }