Redis能够为密钥提供TTL,或者设置新的到期时间;但我无法看到如何使用ZF2 Redis缓存存储适配器实现相同目的。
我知道我可以为每个适配器实例设置一个默认TTL,但我需要能够知道一个值剩下多少秒,或者能够触摸'一个价值,延长其寿命,或甚至明确地设定一个新的到期。
现在有可能使用Zend的适配器来实现这一目标吗?有什么方法可以绕过这个并直接做到这一点吗?
答案 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
)并将功能添加到那里。并根据您的自定义适配器更改您的配置。