PHP Class Predis\Connection\Replication\MasterSlaveReplication

Author: Daniele Alessandri ([email protected])
Inheritance: implements Predis\Connection\Replication\ReplicationInterface
Show file Open project: nrk/predis Class Usage Examples

Protected Properties

Property Type Description
$aliases Predis\Connection\NodeConnectionInterface[]
$autoDiscovery boolean
$connectionFactory Predis\Connection\FactoryInterface
$current Predis\Connection\NodeConnectionInterface
$master Predis\Connection\NodeConnectionInterface
$pool Predis\Connection\NodeConnectionInterface[]
$slaves Predis\Connection\NodeConnectionInterface[]
$strategy Predis\Replication\ReplicationStrategy

Public Methods

Method Description
__construct ( ReplicationStrategy $strategy = null )
__sleep ( )
add ( Predis\Connection\NodeConnectionInterface $connection )
connect ( )
disconnect ( )
discover ( ) Fetches the replication configuration from one of the servers.
executeCommand ( Predis\Command\CommandInterface $command )
getConnectionByAlias ( string $alias ) : Predis\Connection\NodeConnectionInterface | null Returns a connection instance by its alias.
getConnectionByCommand ( Predis\Command\CommandInterface $command )
getConnectionById ( $id )
getConnectionByRole ( string $role ) : Predis\Connection\NodeConnectionInterface | null Returns a connection by its role.
getCurrent ( )
getMaster ( )
getReplicationStrategy ( ) : ReplicationStrategy Returns the underlying replication strategy.
getSlaves ( )
isConnected ( )
readResponse ( Predis\Command\CommandInterface $command )
remove ( Predis\Connection\NodeConnectionInterface $connection )
setAutoDiscovery ( boolean $value ) Configures the automatic discovery of the replication configuration on failure.
setConnectionFactory ( Predis\Connection\FactoryInterface $connectionFactory ) Sets the connection factory used to create the connections by the auto discovery procedure.
switchTo ( Predis\Connection\NodeConnectionInterface $connection ) Switches the internal connection in use by the backend.
switchToMaster ( )
switchToSlave ( )
writeRequest ( Predis\Command\CommandInterface $command )

Protected Methods

Method Description
discoverFromMaster ( Predis\Connection\NodeConnectionInterface $connection, Predis\Connection\FactoryInterface $connectionFactory ) Discovers the replication configuration by contacting the master node.
discoverFromSlave ( Predis\Connection\NodeConnectionInterface $connection, Predis\Connection\FactoryInterface $connectionFactory ) Discovers the replication configuration by contacting one of the slaves.
pickSlave ( ) : Predis\Connection\NodeConnectionInterface Returns a random slave.
reset ( ) Resets the connection state.

Private Methods

Method Description
getMasterOrDie ( ) : Predis\Connection\NodeConnectionInterface Returns the connection associated to the master server.
handleInfoResponse ( string $response ) : array Handles response from INFO.
retryCommandOnFailure ( Predis\Command\CommandInterface $command, string $method ) : mixed Retries the execution of a command upon slave failure.

Method Details

__construct() public method

public __construct ( ReplicationStrategy $strategy = null )
$strategy Predis\Replication\ReplicationStrategy

__sleep() public method

public __sleep ( )

add() public method

public add ( Predis\Connection\NodeConnectionInterface $connection )
$connection Predis\Connection\NodeConnectionInterface

connect() public method

public connect ( )

disconnect() public method

public disconnect ( )

discover() public method

Fetches the replication configuration from one of the servers.
public discover ( )

discoverFromMaster() protected method

Discovers the replication configuration by contacting the master node.
protected discoverFromMaster ( Predis\Connection\NodeConnectionInterface $connection, Predis\Connection\FactoryInterface $connectionFactory )
$connection Predis\Connection\NodeConnectionInterface Connection to the master node.
$connectionFactory Predis\Connection\FactoryInterface Connection factory instance.

discoverFromSlave() protected method

Discovers the replication configuration by contacting one of the slaves.
protected discoverFromSlave ( Predis\Connection\NodeConnectionInterface $connection, Predis\Connection\FactoryInterface $connectionFactory )
$connection Predis\Connection\NodeConnectionInterface Connection to one of the slaves.
$connectionFactory Predis\Connection\FactoryInterface Connection factory instance.

executeCommand() public method

public executeCommand ( Predis\Command\CommandInterface $command )
$command Predis\Command\CommandInterface

getConnectionByAlias() public method

Returns a connection instance by its alias.
public getConnectionByAlias ( string $alias ) : Predis\Connection\NodeConnectionInterface | null
$alias string Connection alias.
return Predis\Connection\NodeConnectionInterface | null

getConnectionByCommand() public method

public getConnectionByCommand ( Predis\Command\CommandInterface $command )
$command Predis\Command\CommandInterface

getConnectionById() public method

public getConnectionById ( $id )

getConnectionByRole() public method

Returns a connection by its role.
public getConnectionByRole ( string $role ) : Predis\Connection\NodeConnectionInterface | null
$role string Connection role (`master` or `slave`)
return Predis\Connection\NodeConnectionInterface | null

getCurrent() public method

public getCurrent ( )

getMaster() public method

public getMaster ( )

getReplicationStrategy() public method

Returns the underlying replication strategy.
public getReplicationStrategy ( ) : ReplicationStrategy
return Predis\Replication\ReplicationStrategy

getSlaves() public method

public getSlaves ( )

isConnected() public method

public isConnected ( )

pickSlave() protected method

Returns a random slave.
protected pickSlave ( ) : Predis\Connection\NodeConnectionInterface
return Predis\Connection\NodeConnectionInterface

readResponse() public method

public readResponse ( Predis\Command\CommandInterface $command )
$command Predis\Command\CommandInterface

remove() public method

public remove ( Predis\Connection\NodeConnectionInterface $connection )
$connection Predis\Connection\NodeConnectionInterface

reset() protected method

Resets the connection state.
protected reset ( )

setAutoDiscovery() public method

Configures the automatic discovery of the replication configuration on failure.
public setAutoDiscovery ( boolean $value )
$value boolean Enable or disable auto discovery.

setConnectionFactory() public method

Sets the connection factory used to create the connections by the auto discovery procedure.
public setConnectionFactory ( Predis\Connection\FactoryInterface $connectionFactory )
$connectionFactory Predis\Connection\FactoryInterface Connection factory instance.

switchTo() public method

Switches the internal connection in use by the backend.
public switchTo ( Predis\Connection\NodeConnectionInterface $connection )
$connection Predis\Connection\NodeConnectionInterface Connection instance in the pool.

switchToMaster() public method

public switchToMaster ( )

switchToSlave() public method

public switchToSlave ( )

writeRequest() public method

public writeRequest ( Predis\Command\CommandInterface $command )
$command Predis\Command\CommandInterface

Property Details

$aliases protected property

protected NodeConnectionInterface[],Predis\Connection $aliases
return Predis\Connection\NodeConnectionInterface[]

$autoDiscovery protected property

protected bool $autoDiscovery
return boolean

$connectionFactory protected property

protected FactoryInterface,Predis\Connection $connectionFactory
return Predis\Connection\FactoryInterface

$current protected property

protected NodeConnectionInterface,Predis\Connection $current
return Predis\Connection\NodeConnectionInterface

$master protected property

protected NodeConnectionInterface,Predis\Connection $master
return Predis\Connection\NodeConnectionInterface

$pool protected property

protected NodeConnectionInterface[],Predis\Connection $pool
return Predis\Connection\NodeConnectionInterface[]

$slaves protected property

protected NodeConnectionInterface[],Predis\Connection $slaves
return Predis\Connection\NodeConnectionInterface[]

$strategy protected property

protected ReplicationStrategy,Predis\Replication $strategy
return Predis\Replication\ReplicationStrategy