缓存经常更新的数据

时间:2017-01-12 15:11:43

标签: php caching laravel-5.3

我正在使用Laravel构建一个应用程序,该应用程序正在从数据库中获取大量数据,我想使用Laravel的Caching System来阻止用户始终访问数据库以获取所需的数据。

对于此示例,让我们使用应用程序的2个用户:User1和User2

当User1和User2同时开始使用该应用程序并在下面的代码中运行方法show时。此外,该方法获取数据库中的帖子并将其添加到缓存中。

class PostController extends Controller
{

public function store(Request $request) {
    $post = Post::find(1);
    $post->name = $request['name'];
    $post->save();

    $post = Cache::put('post', $post, 60);
    return view('index', compact('post'));
}

public function show() {
    $post = Post::all();

    if(Cache::has('post')){
        $post = Cache::get('post');
    }else{
        $post = Cache::put('post', $post, 60);
    }
    return view('index', compact('post'));
}
}

几分钟后,User1运行上面代码的方法store,向数据库中添加一个新帖子并更新其缓存。 此时User2仍然具有相同的缓存,他从一开始就一直在使用。

所以我的问题是,有任何方法在User1进行更新时随时更新User2的缓存吗?

0 个答案:

没有答案