*/
/**
- * Redis-based caching module for redis server >= 2.6.12
+ * Redis-based caching module for redis server >= 2.6.12 and phpredis >= 2.2.4
*
+ * @see https://github.com/phpredis/phpredis/blob/d310ed7c8/Changelog.md
* @note Avoid use of Redis::MULTI transactions for twemproxy support
*
* @ingroup Cache
return false;
}
- $ttl = $this->convertToRelative( $exptime );
+ $ttl = $this->getExpirationAsTTL( $exptime );
$e = null;
try {
$e = null;
try {
// Note that redis does not return false if the key was not there
- $result = ( $conn->delete( $key ) !== false );
+ $result = ( $conn->del( $key ) !== false );
} catch ( RedisException $e ) {
$result = false;
$this->handleException( $conn, $e );
}
}
- $ttl = $this->convertToRelative( $exptime );
+ $ttl = $this->getExpirationAsTTL( $exptime );
$op = $ttl ? 'setex' : 'set';
$result = true;
// Avoid delete() with array to reduce CPU hogging from a single request
$conn->multi( Redis::PIPELINE );
foreach ( $batchKeys as $key ) {
- $conn->delete( $key );
+ $conn->del( $key );
}
$batchResult = $conn->exec();
if ( $batchResult === false ) {
}
}
- $relative = $this->expiryIsRelative( $exptime );
- $op = ( $exptime == 0 ) ? 'persist' : ( $relative ? 'expire' : 'expireAt' );
+ $relative = $this->isRelativeExpiration( $exptime );
+ $op = ( $exptime == self::TTL_INDEFINITE )
+ ? 'persist'
+ : ( $relative ? 'expire' : 'expireAt' );
$result = true;
foreach ( $batches as $server => $batchKeys ) {
try {
$conn->multi( Redis::PIPELINE );
foreach ( $batchKeys as $key ) {
- if ( $exptime == 0 ) {
+ if ( $exptime == self::TTL_INDEFINITE ) {
$conn->persist( $key );
} elseif ( $relative ) {
- $conn->expire( $key, $this->convertToRelative( $exptime ) );
+ $conn->expire( $key, $this->getExpirationAsTTL( $exptime ) );
} else {
- $conn->expireAt( $key, $this->convertToExpiry( $exptime ) );
+ $conn->expireAt( $key, $this->getExpirationAsTimestamp( $exptime ) );
}
}
$batchResult = $conn->exec();
return $result;
}
- public function add( $key, $value, $expiry = 0, $flags = 0 ) {
+ protected function doAdd( $key, $value, $expiry = 0, $flags = 0 ) {
$conn = $this->getConnection( $key );
if ( !$conn ) {
return false;
}
- $ttl = $this->convertToRelative( $expiry );
+ $ttl = $this->getExpirationAsTTL( $expiry );
try {
$result = $conn->set(
$key,
return false;
}
- $relative = $this->expiryIsRelative( $exptime );
+ $relative = $this->isRelativeExpiration( $exptime );
try {
- if ( $exptime == 0 ) {
+ if ( $exptime == self::TTL_INDEFINITE ) {
$result = $conn->persist( $key );
$this->logRequest( 'persist', $key, $conn->getServer(), $result );
} elseif ( $relative ) {
- $result = $conn->expire( $key, $this->convertToRelative( $exptime ) );
+ $result = $conn->expire( $key, $this->getExpirationAsTTL( $exptime ) );
$this->logRequest( 'expire', $key, $conn->getServer(), $result );
} else {
- $result = $conn->expireAt( $key, $this->convertToExpiry( $exptime ) );
+ $result = $conn->expireAt( $key, $this->getExpirationAsTimestamp( $exptime ) );
$this->logRequest( 'expireAt', $key, $conn->getServer(), $result );
}
} catch ( RedisException $e ) {