|
MediaWiki
master
|
memcached client class implemented using (p)fsockopen() More...


Public Member Functions | |
| __construct ($args) | |
| Memcache initializer. More... | |
| _close_sock ($sock) | |
| Close the specified socket. More... | |
| _connect_sock (&$sock, $host) | |
| Connects $sock to $host, timing out after $timeout. More... | |
| _dead_host ($host) | |
| _dead_sock ($sock) | |
| Marks a host as dead until 30-40 seconds in the future. More... | |
| _debugprint ($text) | |
| _error_log ($text) | |
| _fgets ($sock) | |
| Read a line from a stream. More... | |
| _flush_read_buffer ($f) | |
| Flush the read buffer of a stream. More... | |
| _fread ($sock, $len) | |
| Read the specified number of bytes from a stream. More... | |
| _fwrite ($sock, $buf) | |
| Write to a stream. More... | |
| _handle_error ($sock, $msg) | |
| Handle an I/O error. More... | |
| _hashfunc ($key) | |
| Creates a hash integer based on the $key. More... | |
| _incrdecr ($cmd, $key, $amt=1) | |
| Perform increment/decriment on $key. More... | |
| _load_items ($sock, &$ret, &$casToken=null) | |
| Load items into $ret from $sock. More... | |
| _set ($cmd, $key, $val, $exp, $casToken=null) | |
| Performs the requested storage operation to the memcache server. More... | |
| add ($key, $val, $exp=0) | |
| Adds a key/value to the memcache server if one isn't already set with that key. More... | |
| cas ($casToken, $key, $value, $exp=0) | |
| Sets a key to a given value in the memcache if the current value still corresponds to a known, given value. More... | |
| decr ($key, $amt=1) | |
| Decrease a value stored on the memcache server. More... | |
| delete ($key, $time=0) | |
| Deletes a key from the server, optionally after $time. More... | |
| disconnect_all () | |
| Disconnects all connected sockets. More... | |
| enable_compress ($enable) | |
| Enable / Disable compression. More... | |
| forget_dead_hosts () | |
| Forget about all of the dead hosts. More... | |
| get ($key, &$casToken=null) | |
| Retrieves the value associated with the key from the memcache server. More... | |
| get_multi ($keys) | |
| Get multiple keys from the server(s) More... | |
| get_sock ($key) | |
| get_sock More... | |
| incr ($key, $amt=1) | |
| Increments $key (optionally) by $amt. More... | |
| lock ($key, $timeout=0) | |
| replace ($key, $value, $exp=0) | |
| Overwrites an existing value for key; only works if key is already set. More... | |
| run_command ($sock, $cmd) | |
| Passes through $cmd to the memcache server connected by $sock; returns output as an array (null array if no output) More... | |
| set ($key, $value, $exp=0) | |
| Unconditionally sets a key to a given value in the memcache. More... | |
| set_compress_threshold ($thresh) | |
| Set the compression threshold. More... | |
| set_debug ($dbg) | |
| Set the debug flag. More... | |
| set_servers ($list) | |
| Set the server list to distribute key gets and puts between. More... | |
| set_timeout ($seconds, $microseconds) | |
| Sets the timeout for new connections. More... | |
| sock_to_host ($host) | |
| Returns the socket for the host. More... | |
| unlock ($key) | |
Public Attributes | |
| int | $_active |
of total servers we haveMore... | |
| int | $_bucketcount |
| Total # of bit buckets we have. More... | |
| array | $_buckets |
| Our bit buckets. More... | |
| array | $_cache_sock |
| Cached Sockets that are connected. More... | |
| bool | $_compress_enable |
| Do we want to use compression? More... | |
| int | $_compress_threshold |
| At how many bytes should we compress? More... | |
| $_connect_attempts | |
| Number of connection attempts for each server. More... | |
| $_connect_timeout | |
| Connect timeout in seconds. More... | |
| bool | $_debug |
| Current debug status; 0 - none to 9 - profiling. More... | |
| bool | $_have_zlib |
| Is compression available? More... | |
| array | $_host_dead |
| Dead hosts, assoc array, 'host'=>'unixtime when ok to check again'. More... | |
| bool | $_persistent |
| Are we using persistent links? More... | |
| array | $_servers |
| Array containing ip:port or array(ip:port, weight) More... | |
| string | $_single_sock |
| If only using one server; contains ip:port to connect to. More... | |
| int | $_timeout_microseconds |
| Stream timeout in microseconds. More... | |
| int | $_timeout_seconds |
| Stream timeout in seconds. More... | |
| array | $stats |
| Command statistics. More... | |
| const | COMPRESSED = 2 |
| Flag: indicates data is compressed. More... | |
| const | COMPRESSION_SAVINGS = 0.20 |
| Minimum savings to store data compressed. More... | |
| const | INTVAL = 4 |
| Flag: indicates data is an integer. More... | |
| const | SERIALIZED = 1 |
| Flag: indicates data is serialized. More... | |
Private Attributes | |
| LoggerInterface | $_logger |
memcached client class implemented using (p)fsockopen()
Definition at line 79 of file MemcachedClient.php.
| MemcachedClient::__construct | ( | $args | ) |
Memcache initializer.
| array | $args | Associative array of settings |
Definition at line 261 of file MemcachedClient.php.
References $args, array(), and set_servers().
| MemcachedClient::_close_sock | ( | $sock | ) |
Close the specified socket.
| string | $sock | Socket to close |
Definition at line 726 of file MemcachedClient.php.
| MemcachedClient::_connect_sock | ( | & | $sock, |
| $host | |||
| ) |
Connects $sock to $host, timing out after $timeout.
| int | $sock | Socket to connect |
| string | $host | Host:IP to connect to |
Definition at line 744 of file MemcachedClient.php.
References $_connect_attempts, $_connect_timeout, _dead_host(), _error_log(), _flush_read_buffer(), and list.
Referenced by sock_to_host().
| MemcachedClient::_dead_host | ( | $host | ) |
| string | $host |
Definition at line 793 of file MemcachedClient.php.
Referenced by _connect_sock(), and _dead_sock().
| MemcachedClient::_dead_sock | ( | $sock | ) |
Marks a host as dead until 30-40 seconds in the future.
| string | $sock | Socket to mark as dead |
Definition at line 785 of file MemcachedClient.php.
References _dead_host().
Referenced by _handle_error().
| MemcachedClient::_debugprint | ( | $text | ) |
| string | $text |
Definition at line 1121 of file MemcachedClient.php.
Referenced by _set(), delete(), get(), and get_multi().
| MemcachedClient::_error_log | ( | $text | ) |
| string | $text |
Definition at line 1128 of file MemcachedClient.php.
Referenced by _connect_sock(), and _handle_error().
| MemcachedClient::_fgets | ( | $sock | ) |
Read a line from a stream.
If there is an error, mark the socket dead. The \r\n line ending is stripped from the response.
| Resource | $sock | The socket |
Definition at line 1218 of file MemcachedClient.php.
References _handle_error().
Referenced by _incrdecr(), _load_items(), _set(), delete(), and run_command().
| MemcachedClient::_flush_read_buffer | ( | $f | ) |
Flush the read buffer of a stream.
| Resource | $f |
Definition at line 1247 of file MemcachedClient.php.
Referenced by _connect_sock().
| MemcachedClient::_fread | ( | $sock, | |
| $len | |||
| ) |
Read the specified number of bytes from a stream.
If there is an error, mark the socket dead.
| Resource | $sock | The socket |
| int | $len | The number of bytes to read |
Definition at line 1187 of file MemcachedClient.php.
References _handle_error().
Referenced by _load_items().
| MemcachedClient::_fwrite | ( | $sock, | |
| $buf | |||
| ) |
Write to a stream.
If there is an error, mark the socket dead.
| Resource | $sock | The socket |
| string | $buf | The string to write |
Definition at line 1139 of file MemcachedClient.php.
References _handle_error().
Referenced by _incrdecr(), _set(), delete(), get(), get_multi(), and run_command().
| MemcachedClient::_handle_error | ( | $sock, | |
| $msg | |||
| ) |
Handle an I/O error.
Mark the socket dead and log an error.
| Resource | $sock | |
| string | $msg |
Definition at line 1166 of file MemcachedClient.php.
References _dead_sock(), and _error_log().
Referenced by _fgets(), _fread(), _fwrite(), and _load_items().
| MemcachedClient::_hashfunc | ( | $key | ) |
Creates a hash integer based on the $key.
| string | $key | Key to hash |
Definition at line 860 of file MemcachedClient.php.
Referenced by get_sock().
| MemcachedClient::_incrdecr | ( | $cmd, | |
| $key, | |||
$amt = 1 |
|||
| ) |
Perform increment/decriment on $key.
| string | $cmd | Command to perform |
| string | array | $key | Key to perform it on |
| int | $amt | Amount to adjust |
Definition at line 880 of file MemcachedClient.php.
References $line, _fgets(), _fwrite(), array(), and get_sock().
| MemcachedClient::_load_items | ( | $sock, | |
| & | $ret, | ||
| & | $casToken = null |
||
| ) |
Load items into $ret from $sock.
| Resource | $sock | Socket to read from |
| array | $ret | returned values |
| float | $casToken | [optional] |
Definition at line 921 of file MemcachedClient.php.
References $flags, $ret, $vars, _fgets(), _fread(), _handle_error(), array(), as, list, and unserialize().
Referenced by get(), and get_multi().
| MemcachedClient::_set | ( | $cmd, | |
| $key, | |||
| $val, | |||
| $exp, | |||
$casToken = null |
|||
| ) |
Performs the requested storage operation to the memcache server.
| string | $cmd | Command to perform |
| string | $key | Key to act on |
| mixed | $val | What we need to store |
| int | $exp | (optional) Expiration time. This can be a number of seconds to cache for (up to 30 days inclusive). Any timespans of 30 days + 1 second or longer must be the timestamp of the time at which the mapping should expire. It is safe to use timestamps in all cases, regardless of exipration eg: strtotime("+3 hour") |
| float | $casToken | [optional] |
Definition at line 1015 of file MemcachedClient.php.
References $command, $flags, $line, _debugprint(), _fgets(), _fwrite(), get_sock(), and serialize().
| MemcachedClient::add | ( | $key, | |
| $val, | |||
$exp = 0 |
|||
| ) |
Adds a key/value to the memcache server if one isn't already set with that key.
| string | $key | Key to set with data |
| mixed | $val | Value to store |
| int | $exp | (optional) Expiration time. This can be a number of seconds to cache for (up to 30 days inclusive). Any timespans of 30 days + 1 second or longer must be the timestamp of the time at which the mapping should expire. It is safe to use timestamps in all cases, regardless of expiration eg: strtotime("+3 hour") |
Definition at line 299 of file MemcachedClient.php.
References _set().
| MemcachedClient::cas | ( | $casToken, | |
| $key, | |||
| $value, | |||
$exp = 0 |
|||
| ) |
Sets a key to a given value in the memcache if the current value still corresponds to a known, given value.
Returns true if set successfully.
| float | $casToken | Current known value |
| string | $key | Key to set value as |
| mixed | $value | Value to set |
| int | $exp | (optional) Expiration time. This can be a number of seconds to cache for (up to 30 days inclusive). Any timespans of 30 days + 1 second or longer must be the timestamp of the time at which the mapping should expire. It is safe to use timestamps in all cases, regardless of exipration eg: strtotime("+3 hour") |
Definition at line 653 of file MemcachedClient.php.
| MemcachedClient::decr | ( | $key, | |
$amt = 1 |
|||
| ) |
Decrease a value stored on the memcache server.
| string | $key | Key to decrease |
| int | $amt | (optional) amount to decrease |
Definition at line 314 of file MemcachedClient.php.
References _incrdecr().
| MemcachedClient::delete | ( | $key, | |
$time = 0 |
|||
| ) |
Deletes a key from the server, optionally after $time.
| string | $key | Key to delete |
| int | $time | (optional) how long to wait before deleting |
Definition at line 329 of file MemcachedClient.php.
References $res, _debugprint(), _fgets(), _fwrite(), and get_sock().
| MemcachedClient::disconnect_all | ( | ) |
Disconnects all connected sockets.
Definition at line 388 of file MemcachedClient.php.
| MemcachedClient::enable_compress | ( | $enable | ) |
Enable / Disable compression.
| bool | $enable | True to enable, false to disable |
Definition at line 404 of file MemcachedClient.php.
| MemcachedClient::forget_dead_hosts | ( | ) |
Forget about all of the dead hosts.
Definition at line 414 of file MemcachedClient.php.
References array().
| MemcachedClient::get | ( | $key, | |
| & | $casToken = null |
||
| ) |
Retrieves the value associated with the key from the memcache server.
| array | string | $key | key to retrieve |
| float | $casToken | [optional] |
Definition at line 429 of file MemcachedClient.php.
References $value, _debugprint(), _fwrite(), _load_items(), array(), as, get_sock(), and serialize().
| MemcachedClient::get_multi | ( | $keys | ) |
Get multiple keys from the server(s)
| array | $keys | Keys to retrieve |
Definition at line 488 of file MemcachedClient.php.
References $keys, _debugprint(), _fwrite(), _load_items(), array(), as, and get_sock().
| MemcachedClient::get_sock | ( | $key | ) |
get_sock
| string | $key | Key to retrieve value for; |
Definition at line 811 of file MemcachedClient.php.
References $_bucketcount, _hashfunc(), array(), as, and sock_to_host().
Referenced by _incrdecr(), _set(), delete(), get(), and get_multi().
| MemcachedClient::incr | ( | $key, | |
$amt = 1 |
|||
| ) |
Increments $key (optionally) by $amt.
| string | $key | Key to increment |
| int | $amt | (optional) amount to increment |
Definition at line 555 of file MemcachedClient.php.
References _incrdecr().
| MemcachedClient::lock | ( | $key, | |
$timeout = 0 |
|||
| ) |
| MemcachedClient::replace | ( | $key, | |
| $value, | |||
$exp = 0 |
|||
| ) |
Overwrites an existing value for key; only works if key is already set.
| string | $key | Key to set value as |
| mixed | $value | Value to store |
| int | $exp | (optional) Expiration time. This can be a number of seconds to cache for (up to 30 days inclusive). Any timespans of 30 days + 1 second or longer must be the timestamp of the time at which the mapping should expire. It is safe to use timestamps in all cases, regardless of exipration eg: strtotime("+3 hour") |
Definition at line 575 of file MemcachedClient.php.
| MemcachedClient::run_command | ( | $sock, | |
| $cmd | |||
| ) |
Passes through $cmd to the memcache server connected by $sock; returns output as an array (null array if no output)
| Resource | $sock | Socket to send command on |
| string | $cmd | Command to run |
Definition at line 591 of file MemcachedClient.php.
| MemcachedClient::set | ( | $key, | |
| $value, | |||
$exp = 0 |
|||
| ) |
Unconditionally sets a key to a given value in the memcache.
Returns true if set successfully.
| string | $key | Key to set value as |
| mixed | $value | Value to set |
| int | $exp | (optional) Expiration time. This can be a number of seconds to cache for (up to 30 days inclusive). Any timespans of 30 days + 1 second or longer must be the timestamp of the time at which the mapping should expire. It is safe to use timestamps in all cases, regardless of exipration eg: strtotime("+3 hour") |
Definition at line 631 of file MemcachedClient.php.
| MemcachedClient::set_compress_threshold | ( | $thresh | ) |
Set the compression threshold.
| int | $thresh | Threshold to compress if larger than |
Definition at line 665 of file MemcachedClient.php.
| MemcachedClient::set_debug | ( | $dbg | ) |
Set the debug flag.
| bool | $dbg | True for debugging, false otherwise |
Definition at line 678 of file MemcachedClient.php.
| MemcachedClient::set_servers | ( | $list | ) |
Set the server list to distribute key gets and puts between.
| array | $list | Array of servers to connect to |
Definition at line 691 of file MemcachedClient.php.
Referenced by __construct().
| MemcachedClient::set_timeout | ( | $seconds, | |
| $microseconds | |||
| ) |
Sets the timeout for new connections.
| int | $seconds | Number of seconds |
| int | $microseconds | Number of microseconds |
Definition at line 709 of file MemcachedClient.php.
| MemcachedClient::sock_to_host | ( | $host | ) |
Returns the socket for the host.
| string | $host | Host:IP to get socket for |
Definition at line 1092 of file MemcachedClient.php.
References _connect_sock(), and list.
Referenced by get_sock().
| MemcachedClient::unlock | ( | $key | ) |
| int MemcachedClient::$_active |
| int MemcachedClient::$_bucketcount |
Total # of bit buckets we have.
Definition at line 207 of file MemcachedClient.php.
Referenced by get_sock().
| array MemcachedClient::$_buckets |
| array MemcachedClient::$_cache_sock |
Cached Sockets that are connected.
Definition at line 127 of file MemcachedClient.php.
| bool MemcachedClient::$_compress_enable |
| int MemcachedClient::$_compress_threshold |
At how many bytes should we compress?
Definition at line 167 of file MemcachedClient.php.
| MemcachedClient::$_connect_attempts |
Number of connection attempts for each server.
Definition at line 241 of file MemcachedClient.php.
Referenced by _connect_sock().
| MemcachedClient::$_connect_timeout |
Connect timeout in seconds.
Definition at line 236 of file MemcachedClient.php.
Referenced by _connect_sock().
| bool MemcachedClient::$_debug |
Current debug status; 0 - none to 9 - profiling.
Definition at line 135 of file MemcachedClient.php.
| bool MemcachedClient::$_have_zlib |
| array MemcachedClient::$_host_dead |
Dead hosts, assoc array, 'host'=>'unixtime when ok to check again'.
Definition at line 143 of file MemcachedClient.php.
|
private |
Definition at line 246 of file MemcachedClient.php.
| bool MemcachedClient::$_persistent |
| array MemcachedClient::$_servers |
Array containing ip:port or array(ip:port, weight)
Definition at line 191 of file MemcachedClient.php.
| string MemcachedClient::$_single_sock |
If only using one server; contains ip:port to connect to.
Definition at line 183 of file MemcachedClient.php.
| int MemcachedClient::$_timeout_microseconds |
| int MemcachedClient::$_timeout_seconds |
Stream timeout in seconds.
Applies for example to fread()
Definition at line 223 of file MemcachedClient.php.
| array MemcachedClient::$stats |
| const MemcachedClient::COMPRESSED = 2 |
Flag: indicates data is compressed.
Definition at line 94 of file MemcachedClient.php.
| const MemcachedClient::COMPRESSION_SAVINGS = 0.20 |
Minimum savings to store data compressed.
Definition at line 106 of file MemcachedClient.php.
| const MemcachedClient::INTVAL = 4 |
Flag: indicates data is an integer.
Definition at line 99 of file MemcachedClient.php.
| const MemcachedClient::SERIALIZED = 1 |
Flag: indicates data is serialized.
Definition at line 89 of file MemcachedClient.php.