将列表分页多条数据进行缓存
//将列表分页多条数据进行缓存
//后边需要写入定时任务,定时清空缓存的分页数据重新进行存入缓存操作
public function index()
{
//1、列表存储,需要考虑分页,以模块名+分页功能+当前分页存储区分每页key值
$page = request()->page ?? 1;
$key = 'user.paginate'.$page;
$users = Cache::rememberForever($key, function () {
//2、查询数据库返回每页数据
return User::paginate(6);
});
return view('users.index', compact('users'));
}
缓存用户详情
//存储用户详情
//后边需要写入定时任务,定时清空缓存的详情数据重新进行存入缓存操作
public function show($id)
{
//以模块名+方法名+当前ID拼接key值
$key = 'user.show'.$id;
$user = Cache::rememberForever($key, function () use($id){
return User::find($id);
});
return view('users.show',compact('user'));
}
使用访问器结合redis缓存,对访问用户详情次数进行统计
//使用访问器结合redis缓存,对访问用户详情次数进行统计
//后边可以通过定时任务将缓存里的统计存入数据库
public function getVisitedNumberAttribute()
{
$key = 'user.visited.'.$this->id;
Cache::rememberForever($key, function () {
return $this->visited_counter;
});
//每次访问一次将传入对应的key值进行递增,并返回
return Cache::increment($key);
}
视图blade模板调用
<div class="content">
<div class="m-b-md">
<h4>{{ $user->name }}</h4>
<p>{{ $user->visited_number }}</p>
</div>
</div>