簡體   English   中英

原則Memcached:保存記錄后清除緩存

[英]Doctrine Memcached: Clear cache after save record

保存記錄后,Doctrine 1. *是否清除緩存?

似乎沒有。 我可以在某個地方做嗎?

不,不是。 每次保存對象時,都應手動清除緩存。

文檔中所述 ,最好的方法是使用event(特別是postSave event)來實現:

// lib/model/doctrine/User.class.php

class User extends BaseUser
{
  // ...

  public function postSave($event)
  {
    $cacheDriver = $this->getTable()->getAttribute(Doctrine_Core::ATTR_RESULT_CACHE);
    $cacheDriver->deleteByPrefix('users_');
  }
}

您還可以構建一個自定義類來管理緩存清除( 如此處所述 ):

<?php
class myCache{

    public static function clearRegexMatches($regex){
       Doctrine_Manager::getInstance()
            ->getAttribute(Doctrine_Core::ATTR_RESULT_CACHE)
            ->deleteByRegex($regex);
    }

    public static function clearOne($name){
        Doctrine_Manager::getInstance()
            ->getAttribute(Doctrine_Core::ATTR_RESULT_CACHE)
            ->delete($name);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM