我想在不指定过期时间或从缓存中删除项目并再次存储的情况下更新值。我试过这种方式:
创建后:
Cache::put('post' . $id, $post, 10);
更新后:
Cache::put('post' . $id, $post);
但是,如果没有过期时间,它将不会更新。
这不可能吗?
我不确定是否可以在不包含分钟数的情况下覆盖值。但是,一种可能的解决方法是将日期和时间与您的帖子一起存储,并根据需要添加逻辑进行调整。
创建示例:
Cache::put('post' . $id, $post, 10);
Cache::put('time:post' . $id, Carbon::now(), 10);
更新示例:
$time = Cache::get('time:post' . $id);
Cache::put('post' . $id, $post, $time->diffInMinutes(Carbon::now()));
Laravel 5.7 最近的一个例子:
function CountWeek()
{
if (!Cache::get('count_for_week:init')) {
Cache::put('count_for_week:init', now()->addDays(7));
Cache::put('count_for_week:value', 1, now()->addMonth(1));
return true;
}
$time = Cache::get('count_for_week:init');
Cache::put('count_for_week:value', (Cache::get('count_for_week:value') ?? 0) + 1, $time->diffInMinutes(now()));
}