Don't fallback from uk to ru
[lhc/web/wiklou.git] / includes / objectcache / RedisBagOStuff.php
index 90508da..c3e0c96 100644 (file)
@@ -272,10 +272,10 @@ class RedisBagOStuff extends BagOStuff {
                if ( !$conn ) {
                        return false;
                }
-               if ( !$conn->exists( $key ) ) {
-                       return null;
-               }
                try {
+                       if ( !$conn->exists( $key ) ) {
+                               return null;
+                       }
                        // @FIXME: on races, the key may have a 0 TTL
                        $result = $conn->incrBy( $key, $value );
                } catch ( RedisException $e ) {
@@ -287,6 +287,24 @@ class RedisBagOStuff extends BagOStuff {
                return $result;
        }
 
+       public function changeTTL( $key, $expiry = 0 ) {
+               list( $server, $conn ) = $this->getConnection( $key );
+               if ( !$conn ) {
+                       return false;
+               }
+
+               $expiry = $this->convertToRelative( $expiry );
+               try {
+                       $result = $conn->expire( $key, $expiry );
+               } catch ( RedisException $e ) {
+                       $result = false;
+                       $this->handleException( $conn, $e );
+               }
+
+               $this->logRequest( 'expire', $key, $server, $result );
+               return $result;
+       }
+
        public function modifySimpleRelayEvent( array $event ) {
                if ( array_key_exists( 'val', $event ) ) {
                        $event['val'] = serialize( $event['val'] ); // this class uses PHP serialization