MediaWiki  master
RedisConnRef Class Reference

Helper class to handle automatically marking connectons as reusable (via RAII pattern) More...

Inheritance diagram for RedisConnRef:
Collaboration diagram for RedisConnRef:

Public Member Functions

 __call ( $name, $arguments)
 Magic __call handler for most Redis functions. More...
 
 __construct (RedisConnectionPool $pool, $server, Redis $conn, LoggerInterface $logger)
 
 __destruct ()
 
 clearLastError ()
 
 getLastError ()
 
 getServer ()
 
 hScan ( $key, &$iterator, $pattern=null, $count=null)
 Hash Scan Handle this explicity due to needing the iterator passed by reference. More...
 
 isConnIdentical (Redis $conn)
 
 luaEval ( $script, array $params, $numKeys)
 
 scan (&$iterator, $pattern=null, $count=null)
 Key Scan Handle this explicity due to needing the iterator passed by reference. More...
 
 setLogger (LoggerInterface $logger)
 
 sScan ( $key, &$iterator, $pattern=null, $count=null)
 Set Scan Handle this explicity due to needing the iterator passed by reference. More...
 
 zScan ( $key, &$iterator, $pattern=null, $count=null)
 Sorted Set Scan Handle this explicity due to needing the iterator passed by reference. More...
 

Public Attributes

const AUTH_ERROR_PERMANENT = 202
 Authentication error was permanent and could not be recovered. More...
 
const AUTH_ERROR_TEMPORARY = 201
 Temporary authentication error; recovered by reauthenticating. More...
 
const AUTH_NO_ERROR = 200
 No authentication errors. More...
 

Protected Attributes

Redis $conn
 
string null $lastError
 
LoggerInterface $logger
 
RedisConnectionPool $pool
 
string $server
 

Private Member Functions

 checkAuthentication ()
 Handle authentication errors and automatically reauthenticate. More...
 
 postCallCleanup ()
 Post Redis call cleanup. More...
 
 tryCall ( $method, $arguments)
 Do the method call in the common try catch handler. More...
 

Detailed Description

Helper class to handle automatically marking connectons as reusable (via RAII pattern)

This class simply wraps the Redis class and can be used the same way

Since
1.21

Definition at line 31 of file RedisConnRef.php.

Constructor & Destructor Documentation

◆ __construct()

RedisConnRef::__construct ( RedisConnectionPool  $pool,
  $server,
Redis  $conn,
LoggerInterface  $logger 
)
Parameters
RedisConnectionPool$pool
string$server
Redis$conn
LoggerInterface$logger

Definition at line 67 of file RedisConnRef.php.

References $conn, $logger, $pool, $server, and server.

◆ __destruct()

RedisConnRef::__destruct ( )

Definition at line 298 of file RedisConnRef.php.

References server.

Member Function Documentation

◆ __call()

RedisConnRef::__call (   $name,
  $arguments 
)

Magic __call handler for most Redis functions.

Parameters
string$name
array$arguments
Returns
mixed $res
Exceptions
RedisException

Definition at line 104 of file RedisConnRef.php.

References $name, and tryCall().

◆ checkAuthentication()

RedisConnRef::checkAuthentication ( )
private

Handle authentication errors and automatically reauthenticate.

Returns
int self::AUTH_NO_ERROR, self::AUTH_ERROR_TEMPORARY, or self::AUTH_ERROR_PERMANENT

Definition at line 210 of file RedisConnRef.php.

References server.

Referenced by tryCall().

◆ clearLastError()

RedisConnRef::clearLastError ( )

Definition at line 92 of file RedisConnRef.php.

References null.

◆ getLastError()

RedisConnRef::getLastError ( )

Definition at line 88 of file RedisConnRef.php.

References $lastError.

◆ getServer()

RedisConnRef::getServer ( )
Returns
string
Since
1.23

Definition at line 84 of file RedisConnRef.php.

References $server.

Referenced by RedisConnectionPool\handleError().

◆ hScan()

RedisConnRef::hScan (   $key,
$iterator,
  $pattern = null,
  $count = null 
)

Hash Scan Handle this explicity due to needing the iterator passed by reference.

See: https://github.com/phpredis/phpredis#hScan

Parameters
string$key
int&$iterator
string | null$pattern
int | null$count
Returns
array $res

Definition at line 186 of file RedisConnRef.php.

References tryCall().

◆ isConnIdentical()

RedisConnRef::isConnIdentical ( Redis  $conn)
Parameters
Redis$conn
Returns
bool

Definition at line 294 of file RedisConnRef.php.

References $conn.

Referenced by RedisConnectionPool\handleError().

◆ luaEval()

RedisConnRef::luaEval (   $script,
array  $params,
  $numKeys 
)
Parameters
string$script
array$params
int$numKeys
Returns
mixed
Exceptions
RedisException

Definition at line 244 of file RedisConnRef.php.

References $conn, $lastError, $res, and $server.

Referenced by PoolCounterRedis\initAndPopPoolSlotList(), JobQueueRedis\popAndAcquireBlob(), JobQueueRedis\pushBlobs(), PoolCounterRedis\registerAcquisitionTime(), and PoolCounterRedis\release().

◆ postCallCleanup()

RedisConnRef::postCallCleanup ( )
private

Post Redis call cleanup.

Returns
void

Definition at line 230 of file RedisConnRef.php.

References $lastError.

Referenced by tryCall().

◆ scan()

RedisConnRef::scan ( $iterator,
  $pattern = null,
  $count = null 
)

Key Scan Handle this explicity due to needing the iterator passed by reference.

See: https://github.com/phpredis/phpredis#scan

Parameters
int&$iterator
string | null$pattern
int | null$count
Returns
array $res

Definition at line 156 of file RedisConnRef.php.

References tryCall().

◆ setLogger()

RedisConnRef::setLogger ( LoggerInterface  $logger)

Definition at line 76 of file RedisConnRef.php.

References $logger.

◆ sScan()

RedisConnRef::sScan (   $key,
$iterator,
  $pattern = null,
  $count = null 
)

Set Scan Handle this explicity due to needing the iterator passed by reference.

See: https://github.com/phpredis/phpredis#sScan

Parameters
string$key
int&$iterator
string | null$pattern
int | null$count
Returns
array $res

Definition at line 171 of file RedisConnRef.php.

References tryCall().

◆ tryCall()

RedisConnRef::tryCall (   $method,
  $arguments 
)
private

Do the method call in the common try catch handler.

Parameters
string$method
array$arguments
Returns
mixed $res
Exceptions
RedisException

Definition at line 128 of file RedisConnRef.php.

References $res, checkAuthentication(), and postCallCleanup().

Referenced by __call(), hScan(), scan(), sScan(), and zScan().

◆ zScan()

RedisConnRef::zScan (   $key,
$iterator,
  $pattern = null,
  $count = null 
)

Sorted Set Scan Handle this explicity due to needing the iterator passed by reference.

See: https://github.com/phpredis/phpredis#hScan

Parameters
string$key
int&$iterator
string | null$pattern
int | null$count
Returns
array $res

Definition at line 201 of file RedisConnRef.php.

References tryCall().

Member Data Documentation

◆ $conn

Redis RedisConnRef::$conn
protected

Definition at line 35 of file RedisConnRef.php.

Referenced by __construct(), isConnIdentical(), and luaEval().

◆ $lastError

string null RedisConnRef::$lastError
protected

Definition at line 39 of file RedisConnRef.php.

Referenced by getLastError(), luaEval(), and postCallCleanup().

◆ $logger

LoggerInterface RedisConnRef::$logger
protected

Definition at line 44 of file RedisConnRef.php.

Referenced by __construct(), and setLogger().

◆ $pool

RedisConnectionPool RedisConnRef::$pool
protected

Definition at line 33 of file RedisConnRef.php.

Referenced by __construct().

◆ $server

string RedisConnRef::$server
protected

Definition at line 37 of file RedisConnRef.php.

Referenced by __construct(), getServer(), and luaEval().

◆ AUTH_ERROR_PERMANENT

const RedisConnRef::AUTH_ERROR_PERMANENT = 202

Authentication error was permanent and could not be recovered.

Definition at line 59 of file RedisConnRef.php.

◆ AUTH_ERROR_TEMPORARY

const RedisConnRef::AUTH_ERROR_TEMPORARY = 201

Temporary authentication error; recovered by reauthenticating.

Definition at line 54 of file RedisConnRef.php.

◆ AUTH_NO_ERROR

const RedisConnRef::AUTH_NO_ERROR = 200

No authentication errors.

Definition at line 49 of file RedisConnRef.php.


The documentation for this class was generated from the following file: