Code Duplication    Length = 21-24 lines in 2 locations

includes/libs/objectcache/RedisBagOStuff.php 2 locations

@@ 107-127 (lines=21) @@
104
		return $result;
105
	}
106
107
	public function set( $key, $value, $expiry = 0, $flags = 0 ) {
108
		list( $server, $conn ) = $this->getConnection( $key );
109
		if ( !$conn ) {
110
			return false;
111
		}
112
		$expiry = $this->convertToRelative( $expiry );
113
		try {
114
			if ( $expiry ) {
115
				$result = $conn->setex( $key, $expiry, $this->serialize( $value ) );
116
			} else {
117
				// No expiry, that is very different from zero expiry in Redis
118
				$result = $conn->set( $key, $this->serialize( $value ) );
119
			}
120
		} catch ( RedisException $e ) {
121
			$result = false;
122
			$this->handleException( $conn, $e );
123
		}
124
125
		$this->logRequest( 'set', $key, $server, $result );
126
		return $result;
127
	}
128
129
	public function delete( $key ) {
130
		list( $server, $conn ) = $this->getConnection( $key );
@@ 235-258 (lines=24) @@
232
		return $result;
233
	}
234
235
	public function add( $key, $value, $expiry = 0 ) {
236
		list( $server, $conn ) = $this->getConnection( $key );
237
		if ( !$conn ) {
238
			return false;
239
		}
240
		$expiry = $this->convertToRelative( $expiry );
241
		try {
242
			if ( $expiry ) {
243
				$result = $conn->set(
244
					$key,
245
					$this->serialize( $value ),
246
					[ 'nx', 'ex' => $expiry ]
247
				);
248
			} else {
249
				$result = $conn->setnx( $key, $this->serialize( $value ) );
250
			}
251
		} catch ( RedisException $e ) {
252
			$result = false;
253
			$this->handleException( $conn, $e );
254
		}
255
256
		$this->logRequest( 'add', $key, $server, $result );
257
		return $result;
258
	}
259
260
	/**
261
	 * Non-atomic implementation of incr().