删除快取 Delete Cache
程式 Code: 删除快取 Delete Cache
Categories:
我们设定了快取希望使用者存取资料的时候能够加快回应时间,但资料可能会因为使用者的删除
或修改
而产生了异动,若我们需要让使用者能够读取到最新的资料,我们通常会手动的将快取删除,让使用者下次读取的话能够去资料库读取到最新的资料,在重新设定一次新的快取资料。
以部落格文章快取为例
更新部落格文章资料
<?php
// 快取 key 依照不同的文章编号,可以是 blog_post:1 或 blog_post:2
$cache_key = 'blog_post:' . $post_id;
$results = DB::update('UPDATE `posts` SET `content`= ? WHERE `post_id` = ?', [$new_content, $post_id]);
if ($result) {
// 选择1: 直接设定文章快取,让下一位使用者再次存取相同文章时可直接取用快取
Cache::put($cache_key, $new_content, $cache_minutes);
// 选择2: 删除快取,等下一位使用者读取文章时在去设定快取
Cache::forget($cache_key);
}
return $result;
删除部落格文章资料
<?php
// 快取 key 依照不同的文章编号,可以是 blog_post:1 或 blog_post:2
$cache_key = 'blog_post:' . $post_id;
$results = DB::delete('DELETE FROM `posts` WHERE `post_id` = ?', [$post_id]);
if ($result) {
// 删除快取,让下一位使用者不要再读取已被删除的文章
Cache::forget($cache_key);
}
return $result;