2016-05-07 3 views
2

Redis kann TTL für einen Schlüssel zurückgeben oder eine neue Ablaufzeit einstellen; aber ich kann nicht sehen, wie man dasselbe mit ZF2 Redis Cache Storage Adapter erreicht.ZF2 Redis Adapter: TTL oder ein neues Ablaufdatum für einen Schlüssel festlegen?

Ich weiß, ich kann eine Standard-TTL für jede Adapater-Instanz festlegen, aber ich müsste wissen können, wie viele Sekunden ein Wert übrig geblieben ist oder einen Wert "berühren" und seine Lebensdauer verlängern kann. oder um explizit ein neues Ablaufdatum festzulegen.

Ist es möglich, dass es jetzt einen Weg gibt, dies mit Zend's Adapter zu erreichen? Irgendeine Möglichkeit, dies zu umgehen und es direkt zu tun?

Antwort

1

Sie können die folgende Konvention verwenden, um den temporären Ablaufwert festzulegen. Ich weiß nicht, wie Sie

Zeit ablaufen lassen können
/** 
* @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); 

Sie sollten TTL-Befehl verwenden, zu wissen, wie viele Sekunden für eine Taste auf Ihrer Redis Befehlszeile verlassen hat. Aber Zend Cache behandelt diesen Befehl nicht. Wenn Sie diesen Befehl verwenden möchten, können Sie den Standardadapter (\Zend\Cache\Storage\Adapter\Redis) erweitern und dort Ihre Funktionalität hinzufügen. Und ändern Sie Ihre Konfiguration entsprechend Ihrem benutzerdefinierten Adapter.