首页 文章

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

提问于
浏览
2

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

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

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

1 回答

  • 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 )并将功能添加到那里 . 并根据您的自定义适配器更改您的配置 .

相关问题