MediaWiki master
|
Store data on memcached servers(s) via a pure-PHP memcached client. More...
Inherits Wikimedia\ObjectCache\MemcachedBagOStuff.
Public Member Functions | |
__construct ( $params) | |
Available parameters are: | |
Public Member Functions inherited from Wikimedia\ObjectCache\MemcachedBagOStuff | |
__construct (array $params) | |
validateKeyEncoding ( $key) | |
Ensure that a key is safe to use (contains no control characters and no characters above the ASCII range.) | |
Public Member Functions inherited from Wikimedia\ObjectCache\MediumSpecificBagOStuff | |
add ( $key, $value, $exptime=0, $flags=0) | |
Insert an item if it does not already exist. | |
changeTTL ( $key, $exptime=0, $flags=0) | |
Change the expiration on a key if it exists. | |
changeTTLMulti (array $keys, $exptime, $flags=0) | |
Change the expiration of multiple keys that exist. | |
delete ( $key, $flags=0) | |
Delete an item if it exists. | |
deleteMulti (array $keys, $flags=0) | |
Delete a batch of items. | |
deleteObjectsExpiringBefore ( $timestamp, callable $progress=null, $limit=INF, string $tag=null) | |
Delete all objects expiring before a certain date. | |
get ( $key, $flags=0) | |
Get an item with the given key. | |
getMulti (array $keys, $flags=0) | |
Get an associative array containing the item for each of the keys that have items. | |
getQoS ( $flag) | |
getSegmentationSize () | |
getSegmentedValueMaxSize () | |
incrWithInit ( $key, $exptime, $step=1, $init=null, $flags=0) | |
Increase the value of the given key (no TTL change) if it exists or create it otherwise. | |
lock ( $key, $timeout=6, $exptime=6, $rclass='') | |
merge ( $key, callable $callback, $exptime=0, $attempts=10, $flags=0) | |
Merge changes into the existing cache value (possibly creating a new one) | |
set ( $key, $value, $exptime=0, $flags=0) | |
Set an item. | |
setMulti (array $valueByKey, $exptime=0, $flags=0) | |
Batch insertion/replace. | |
unlock ( $key) | |
Release an advisory lock on a key string. | |
Public Member Functions inherited from Wikimedia\ObjectCache\BagOStuff | |
clearLastError () | |
Clear the "last error" registry. | |
getCurrentTime () | |
getLastError ( $watchPoint=0) | |
Get the "last error" registry. | |
getLogger () | |
getScopedLock ( $key, $timeout=6, $exptime=30, $rclass='') | |
Get a lightweight exclusive self-unlocking lock. | |
getWithSetCallback ( $key, $exptime, $callback, $flags=0) | |
Get an item, regenerating and setting it if not found. | |
isKeyGlobal ( $key) | |
Check whether a cache key is in the global keyspace. | |
makeGlobalKey ( $keygroup,... $components) | |
Make a cache key from the given components, in the "global" keyspace. | |
makeKey ( $keygroup,... $components) | |
Make a cache key from the given components, in the default keyspace. | |
setLogger (LoggerInterface $logger) | |
setMockTime (&$time) | |
watchErrors () | |
Get a "watch point" token that can be used to get the "last error" to occur after now. | |
Protected Member Functions | |
doAdd ( $key, $value, $exptime=0, $flags=0) | |
Insert an item if it does not already exist. | |
doCas ( $casToken, $key, $value, $exptime=0, $flags=0) | |
Set an item if the current CAS token matches the provided CAS token. | |
doChangeTTL ( $key, $exptime, $flags) | |
doDelete ( $key, $flags=0) | |
Delete an item. | |
doGet ( $key, $flags=0, &$casToken=null) | |
Get an item. | |
doGetMulti (array $keys, $flags=0) | |
Get an associative array containing the item for each of the keys that have items. | |
doIncrWithInitAsync ( $key, $exptime, $step, $init) | |
doIncrWithInitSync ( $key, $exptime, $step, $init) | |
doSet ( $key, $value, $exptime=0, $flags=0) | |
Set an item. | |
serialize ( $value) | |
unserialize ( $value) | |
Protected Member Functions inherited from Wikimedia\ObjectCache\MemcachedBagOStuff | |
doIncrWithInit ( $key, $exptime, $step, $init, $flags) | |
fixExpiry ( $exptime) | |
makeKeyInternal ( $keyspace, $components) | |
Format a cache key. | |
requireConvertGenericKey () | |
Whether ::proxyCall() must re-encode cache keys before calling read/write methods. | |
stripRouteFromKey ( $key) | |
validateKeyAndPrependRoute ( $key) | |
Protected Member Functions inherited from Wikimedia\ObjectCache\MediumSpecificBagOStuff | |
cas ( $casToken, $key, $value, $exptime=0, $flags=0) | |
Set an item if the current CAS token matches the provided CAS token. | |
debug ( $text) | |
doChangeTTLMulti (array $keys, $exptime, $flags=0) | |
doDeleteMulti (array $keys, $flags=0) | |
doLock ( $key, $timeout, $exptime) | |
doSetMulti (array $data, $exptime=0, $flags=0) | |
doUnlock ( $key) | |
getExpirationAsTimestamp ( $exptime) | |
Convert an optionally relative timestamp to an absolute time. | |
getExpirationAsTTL ( $exptime) | |
Convert an optionally absolute expiry time to a relative time. | |
getSerialized ( $value, $key) | |
Get the serialized form a value, logging a warning if it involves custom classes. | |
isInteger ( $value) | |
Check if a value is an integer. | |
isRelativeExpiration ( $exptime) | |
makeLockKey ( $key) | |
makeValueOrSegmentList ( $key, $value, $exptime, $flags, &$ok) | |
Make the entry to store at a key (inline or segment list), storing any segments. | |
mergeViaCas ( $key, callable $callback, $exptime, $attempts, $flags) | |
resolveSegments ( $key, $mainValue) | |
Get and reassemble the chunks of blob at the given key. | |
tokensMatch ( $value, $otherValue) | |
updateOpStats (string $op, array $keyInfo) | |
Protected Member Functions inherited from Wikimedia\ObjectCache\BagOStuff | |
fieldHasFlags ( $field, $flags) | |
mergeFlagMaps (array $bags) | |
Merge the flag maps of one or more BagOStuff objects into a "lowest common denominator" map. | |
proxyCall (string $method, int $arg0Sig, int $resSig, array $genericArgs, BagOStuff $wrapper) | |
Call a method on behalf of wrapper BagOStuff instance. | |
setLastError ( $error) | |
Set the "last error" registry due to a problem encountered during an attempted operation. | |
Protected Attributes | |
MemcachedClient | $client |
Protected Attributes inherited from Wikimedia\ObjectCache\MemcachedBagOStuff | |
string | $routingPrefix |
Routing prefix appended to keys during operations. | |
Protected Attributes inherited from Wikimedia\ObjectCache\MediumSpecificBagOStuff | |
array< string, array > | $locks = [] |
Map of (key => (class LOCK_* constant => value) | |
float | $maxLockSendDelay = 0.05 |
Seconds; maximum expected seconds for a lock ping to reach the backend. | |
int | $segmentationSize |
Bytes; chunk size of segmented cache values. | |
int | $segmentedValueMaxSize |
Bytes; maximum total size of a segmented cache value. | |
const | LOCK_DEPTH = 1 |
const | LOCK_EXPIRY = 3 |
const | LOCK_RCLASS = 0 |
const | LOCK_TIME = 2 |
const | METRIC_OP_ADD = 'add' |
const | METRIC_OP_CAS = 'cas' |
const | METRIC_OP_CHANGE_TTL = 'change_ttl' |
const | METRIC_OP_DECR = 'decr' |
const | METRIC_OP_DELETE = 'delete' |
const | METRIC_OP_GET = 'get' |
const | METRIC_OP_INCR = 'incr' |
const | METRIC_OP_SET = 'set' |
const | PASS_BY_REF = -1 |
Idiom for doGet() to return extra information by reference. | |
Protected Attributes inherited from Wikimedia\ObjectCache\BagOStuff | |
callable null | $asyncHandler |
int[] | $attrMap = [] |
Map of (BagOStuff:ATTR_* constant => BagOStuff:QOS_* constant) | |
string | $keyspace |
Default keyspace; used by makeKey() | |
int | $lastError = self::ERR_NONE |
BagOStuff:ERR_* constant of the last error that occurred. | |
int | $lastErrorId = 0 |
Error event sequence number of the last error that occurred. | |
LoggerInterface | $logger |
StatsFactory | $stats |
Additional Inherited Members | |
Public Attributes inherited from Wikimedia\ObjectCache\BagOStuff | |
const | MAX_CONFLICTS_ONE = 1 |
Abort after the first merge conflict. | |
const | READ_LATEST = 1 |
Bitfield constants for get()/getMulti(); these are only advisory. | |
const | READ_VERIFIED = 2 |
Promise that the caller handles detection of staleness. | |
const | WRITE_ALLOW_SEGMENTS = 16 |
Allow partitioning of the value if it is a large string. | |
const | WRITE_BACKGROUND = 64 |
If supported, do not block on write operation completion; instead, treat writes as succesful based on whether they could be buffered. | |
const | WRITE_CACHE_ONLY = 8 |
Bitfield constants for set()/merge(); these are only advisory. | |
const | WRITE_PRUNE_SEGMENTS = self::WRITE_ALLOW_SEGMENTS |
Delete all the segments if the value is partitioned. | |
Public Attributes inherited from Wikimedia\LightweightObjectStore\StorageAwareness | |
const | ATTR_DURABILITY = 2 |
Durability of writes; see QOS_DURABILITY_* (higher means stronger) | |
const | ATTR_EMULATION = 1 |
const | ERR_NO_RESPONSE = 1 |
Storage medium failed to yield a complete response to an operation. | |
const | ERR_NONE = 0 |
No storage medium error. | |
const | ERR_UNEXPECTED = 3 |
Storage medium operation failed due to usage limitations or an I/O error. | |
const | ERR_UNREACHABLE = 2 |
Storage medium could not be reached to establish a connection. | |
const | QOS_DURABILITY_DISK = 4 |
Data is saved to disk and writes do not usually block on fsync() | |
const | QOS_DURABILITY_NONE = 1 |
Data is never saved to begin with (blackhole store) | |
const | QOS_DURABILITY_RDBMS = 5 |
Data is saved to disk and writes usually block on fsync(), like a standard RDBMS. | |
const | QOS_DURABILITY_SCRIPT = 2 |
Data is lost at the end of the current web request or CLI script. | |
const | QOS_DURABILITY_SERVICE = 3 |
Data is lost once the service storing the data restarts. | |
const | QOS_UNKNOWN = INF |
Generic "unknown" value; useful for comparisons (always "good enough") | |
Static Protected Attributes inherited from Wikimedia\ObjectCache\BagOStuff | |
static int | $nextErrorMonitorId = 1 |
Next sequence number to use for watch/error events. | |
Store data on memcached servers(s) via a pure-PHP memcached client.
In configuration, the CACHE_MEMCACHED will activate the MemcachedPhpBagOStuff class. This works out of the box without any PHP extension or other PECL dependencies. If you can install the php-memcached PECL extension, it is recommended to use MemcachedPeclBagOStuff instead.
Definition at line 34 of file MemcachedPhpBagOStuff.php.
Wikimedia\ObjectCache\MemcachedPhpBagOStuff::__construct | ( | $params | ) |
Available parameters are:
array | $params |
Definition at line 48 of file MemcachedPhpBagOStuff.php.
References $params.
|
protected |
Insert an item if it does not already exist.
string | $key | |
mixed | $value | |
int | $exptime | |
int | $flags | Bitfield of BagOStuff::WRITE_* constants (since 1.33) |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 104 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MemcachedBagOStuff\fixExpiry(), Wikimedia\ObjectCache\BagOStuff\setLastError(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
Set an item if the current CAS token matches the provided CAS token.
mixed | $casToken | CAS token from an existing version of the key |
string | $key | |
mixed | $value | |
int | $exptime | Either an interval in seconds or a unix timestamp for expiry |
int | $flags | Bitfield of BagOStuff::WRITE_* constants |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 116 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MemcachedBagOStuff\fixExpiry(), Wikimedia\ObjectCache\BagOStuff\setLastError(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
string | $key | |
int | $exptime | |
int | $flags |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 155 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MemcachedBagOStuff\fixExpiry(), Wikimedia\ObjectCache\BagOStuff\setLastError(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
Delete an item.
string | $key | |
int | $flags | Bitfield of BagOStuff::WRITE_* constants |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 92 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\BagOStuff\setLastError(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
Get an item.
The CAS token should be null if the key does not exist or the value is corrupt
string | $key | |
int | $flags | Bitfield of BagOStuff::READ_* constants [optional] |
mixed | &$casToken | CAS token if MediumSpecificBagOStuff::PASS_BY_REF [returned] |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 63 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MediumSpecificBagOStuff\PASS_BY_REF, Wikimedia\ObjectCache\BagOStuff\setLastError(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
Get an associative array containing the item for each of the keys that have items.
string[] | $keys | List of keys |
int | $flags | Bitfield; supports READ_LATEST [optional] |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 167 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\BagOStuff\setLastError(), Wikimedia\ObjectCache\MemcachedBagOStuff\stripRouteFromKey(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
string | $key | |
int | $exptime | |
int | $step | |
int | $init |
Reimplemented from Wikimedia\ObjectCache\MemcachedBagOStuff.
Definition at line 128 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MemcachedBagOStuff\fixExpiry(), Wikimedia\ObjectCache\BagOStuff\getLastError(), Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute(), and Wikimedia\ObjectCache\BagOStuff\watchErrors().
|
protected |
string | $key | |
int | $exptime | |
int | $step | |
int | $init |
Reimplemented from Wikimedia\ObjectCache\MemcachedBagOStuff.
Definition at line 137 of file MemcachedPhpBagOStuff.php.
References $success, Wikimedia\ObjectCache\MemcachedBagOStuff\fixExpiry(), Wikimedia\ObjectCache\BagOStuff\getLastError(), Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute(), and Wikimedia\ObjectCache\BagOStuff\watchErrors().
|
protected |
Set an item.
string | $key | |
mixed | $value | |
int | $exptime | Either an interval in seconds or a unix timestamp for expiry |
int | $flags | Bitfield of BagOStuff::WRITE_* constants |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 80 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MemcachedBagOStuff\fixExpiry(), Wikimedia\ObjectCache\BagOStuff\setLastError(), and Wikimedia\ObjectCache\MemcachedBagOStuff\validateKeyAndPrependRoute().
|
protected |
mixed | $value |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 187 of file MemcachedPhpBagOStuff.php.
|
protected |
string | int | false | $value |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 191 of file MemcachedPhpBagOStuff.php.
References Wikimedia\ObjectCache\MediumSpecificBagOStuff\isInteger().
|
protected |
Definition at line 36 of file MemcachedPhpBagOStuff.php.