Php 缓存频繁更新的数据
我正在用Laravel构建一个应用程序,该应用程序正在从数据库中获取大量数据,我想使用Laravel的Php 缓存频繁更新的数据,php,caching,laravel-5.3,Php,Caching,Laravel 5.3,我正在用Laravel构建一个应用程序,该应用程序正在从数据库中获取大量数据,我想使用Laravel的缓存系统,防止用户总是去数据库获取所需数据 在本例中,让我们以使用该应用程序的两个用户为例:User1和User2 当用户1和用户2同时开始使用应用程序并运行下面代码中的方法show。此外,该方法还获取数据库中的POST并将其添加到缓存中 class PostController extends Controller { public function store(Request $reque
缓存系统
,防止用户总是去数据库获取所需数据
在本例中,让我们以使用该应用程序的两个用户为例:User1和User2
当用户1和用户2同时开始使用应用程序并运行下面代码中的方法show
。此外,该方法还获取数据库中的POST并将其添加到缓存中
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
,向数据库添加新的post并更新其缓存。
此时,User2仍然拥有相同的缓存,他从一开始就拥有相同的缓存
所以我的问题是,有没有什么方法可以在User1进行更新时更新User2的缓存?他们总是假设看到相同的帖子列表,还是每个用户的帖子列表都是独立的?他们总是看到相同的帖子列表,您使用的缓存驱动程序是什么?听起来你在使用会话,它是单独的,而不是全局的。否则,当用户添加帖子时,只需刷新缓存即可。下次用户更新页面时,他们将获得新的缓存。我正在使用默认的驱动程序,即
文件驱动程序,但我不知道他们如何拥有不同的缓存?如果user1添加了一篇新文章并在列表中看到它,那么user2在重新加载页面时也应该看到相同的列表。