ZF2 Redis适配器:获取TTL或为密钥设置新的到期日期?

时间:2016-05-07 15:44:55

标签: php redis zend-framework2

Redis能够为密钥提供TTL,或者设置新的到期时间;但我无法看到如何使用ZF2 Redis缓存存储适配器实现相同目的。

我知道我可以为每个适配器实例设置一个默认TTL,但我需要能够知道一个值剩下多少秒,或者能够触摸'一个价值,延长其寿命,或甚至明确地设定一个新的到期。

现在有可能使用Zend的适配器来实现这一目标吗?有什么方法可以绕过这个并直接做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下约定来设置临时过期值。我不知道你如何获得过期时间

/**
 * @var \Zend\Cache\Storage\Adapter\Redis $redisCache
 */
$redisCache = $this->getServiceLocator()->get('core.cache.redis');
$tempTtl = $redisCache->getOptions()->getTtl();
$redisCache->getOptions()->setTtl(5);
var_dump($redisCache->setItem('test', '123456'));
$redisCache->getOptions()->setTtl($tempTtl);

您应该使用TTL命令知道Redis命令行上的密钥剩余的秒数。但Zend Cache不处理此命令。如果要使用此命令,可以扩展zend默认适配器(\Zend\Cache\Storage\Adapter\Redis)并将功能添加到那里。并根据您的自定义适配器更改您的配置。