Redis能够为密钥提供TTL,或者设置新的到期时间;但我看不出如何使用ZF2 Redis缓存存储适配器实现相同目的 .
我知道我可以为每个适配器实例设置一个默认TTL,但是我需要能够知道一个值剩下多少秒,或者能够“触摸”一个值,延长它的寿命,或者甚至设置一个新的到期明确 .
现在有可能使用Zend的适配器来实现这一目标吗?有什么方法可以绕过这个并直接做到这一点?
您可以使用以下约定来设置临时过期值 . 我不知道你怎么能过期
/** * @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 )并将功能添加到那里 . 并根据您的自定义适配器更改您的配置 .
\Zend\Cache\Storage\Adapter\Redis
1 回答
您可以使用以下约定来设置临时过期值 . 我不知道你怎么能过期
您应该使用TTL命令知道Redis命令行上的密钥剩余的秒数 . 但Zend Cache不处理此命令 . 如果要使用此命令,可以扩展zend默认适配器(
\Zend\Cache\Storage\Adapter\Redis
)并将功能添加到那里 . 并根据您的自定义适配器更改您的配置 .