如何在数据库更改存储在缓存中的相同数据的值时更新缓存值

时间:2015-08-05 10:30:08

标签: php mysql laravel laravel-4

如果我正在使用像波纹管那样的laravel 4.2缓存机制。

$users = DB::table('users')->remember(10)->get();

据我所知,缓存机制查询执行一个并记录它的值,缓存并从缓存中返回数据最多10分钟。

但我的问题是将执行一个查询并将数据存储在用户表之间的缓存更新它的值然后 我如何检查和更新缓存值,以便我可以获得更新的数据。

任何人都有任何建议请告诉我......?

1 个答案:

答案 0 :(得分:2)

如果您使用的是supported cache driver,则可以在缓存中添加标签:

$users = DB::table('users')->cacheTags(array('people', 'authors'))->remember(10)->get();

然后,当值更新时,您可以刷新标记下的所有缓存值。例如,在您的用户模型中,您可以添加:

public function save(array $options = [])
{
    $result = parent::save($options);

    if ($result) {
        Cache::tags(array('people', 'authors'))->flush();
    }

    return $result;
}