【发布时间】:2020-01-09 20:55:19
【问题描述】:
我想知道是否有任何方法可以从上次访问时更新缓存 TTL?
目前,我有一种方法可以通过 API 调用登录到 adobe 连接,并且 API 会话在上次调用后的 4 天内有效。 但是我的缓存驱动程序从添加的那一刻起仅将会话保留在缓存中 4 天。但我想自上次访问以来将其保留 4 天!
有没有办法更新缓存 TTL? 我确定忘记并重新插入密钥不是最佳做法。
/**
* Login Client Based on information that introduced in environment/config file
*
* @param Client $client
*
* @return void
*/
private function loginClient(Client $client)
{
$config = $this->app["config"]->get("adobeConnect");
$session = Cache::store($config["session-cache"]["driver"])->remember(
$config['session-cache']['key'],
$config['session-cache']['expire'],
function () use ($config, $client) {
$client->login($config["user-name"], $config["password"]);
return $client->getSession();
});
$client->setSession($session);
}
【问题讨论】:
-
您不能只更新 TTL。您需要使用新的 TTL 更新整个缓存项。
标签: laravel laravel-5 caching laravel-5.8 laravel-cache