MediaWiki master
|
Store data in a memory for the current request/process only. More...
Inherits Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Public Member Functions | |
__construct ( $params=[]) | |
clear () | |
Clear all values in cache. | |
hasKey ( $key) | |
Does this bag have a non-null value for the given key? | |
Public Member Functions inherited from Wikimedia\ObjectCache\MediumSpecificBagOStuff | |
__construct (array $params=[]) | |
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. | |
Public Attributes | |
const | KEY_CAS = 2 |
const | KEY_EXP = 1 |
const | KEY_VAL = 0 |
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") | |
Protected Member Functions | |
doAdd ( $key, $value, $exptime=0, $flags=0) | |
Insert an item if it does not already exist. | |
doDelete ( $key, $flags=0) | |
Delete an item. | |
doGet ( $key, $flags=0, &$casToken=null) | |
Get an item. | |
doIncrWithInit ( $key, $exptime, $step, $init, $flags) | |
doSet ( $key, $value, $exptime=0, $flags=0) | |
Set an item. | |
expire ( $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) | |
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) | |
doChangeTTLMulti (array $keys, $exptime, $flags=0) | |
doDeleteMulti (array $keys, $flags=0) | |
doGetMulti (array $keys, $flags=0) | |
Get an associative array containing the item for each of the keys that have items. | |
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. | |
serialize ( $value) | |
tokensMatch ( $value, $otherValue) | |
unserialize ( $value) | |
updateOpStats (string $op, array $keyInfo) | |
Protected Member Functions inherited from Wikimedia\ObjectCache\BagOStuff | |
fieldHasFlags ( $field, $flags) | |
makeKeyInternal ( $keyspace, $components) | |
Make a cache key for the given keyspace and components. | |
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. | |
requireConvertGenericKey () | |
Whether ::proxyCall() must re-encode cache keys before calling read/write methods. | |
setLastError ( $error) | |
Set the "last error" registry due to a problem encountered during an attempted operation. | |
Protected Attributes | |
mixed[] | $bag = [] |
int double | $maxCacheKeys |
Max entries allowed, INF for unlimited. | |
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 | |
Static Protected Attributes inherited from Wikimedia\ObjectCache\BagOStuff | |
static int | $nextErrorMonitorId = 1 |
Next sequence number to use for watch/error events. | |
Store data in a memory for the current request/process only.
This keeps values in a simple associative array. Data will not persist and is not shared with other requests on the same server.
Definition at line 35 of file HashBagOStuff.php.
Wikimedia\ObjectCache\HashBagOStuff::__construct | ( | $params = [] | ) |
array | $params | Additional parameters include:
|
@phpcs:ignore Generic.Files.LineLength
Definition at line 60 of file HashBagOStuff.php.
References $params, Wikimedia\LightweightObjectStore\StorageAwareness\ATTR_DURABILITY, and Wikimedia\LightweightObjectStore\StorageAwareness\QOS_DURABILITY_SCRIPT.
Wikimedia\ObjectCache\HashBagOStuff::clear | ( | ) |
Clear all values in cache.
Definition at line 144 of file HashBagOStuff.php.
|
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 112 of file HashBagOStuff.php.
References Wikimedia\ObjectCache\HashBagOStuff\doSet(), Wikimedia\ObjectCache\HashBagOStuff\expire(), and Wikimedia\ObjectCache\HashBagOStuff\hasKey().
|
protected |
Delete an item.
string | $key | |
int | $flags | Bitfield of BagOStuff::WRITE_* constants |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 121 of file HashBagOStuff.php.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\expire().
|
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 74 of file HashBagOStuff.php.
References Wikimedia\ObjectCache\HashBagOStuff\expire(), Wikimedia\ObjectCache\HashBagOStuff\hasKey(), Wikimedia\ObjectCache\HashBagOStuff\KEY_CAS, Wikimedia\ObjectCache\HashBagOStuff\KEY_VAL, and Wikimedia\ObjectCache\MediumSpecificBagOStuff\PASS_BY_REF.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\doIncrWithInit().
|
protected |
string | $key | |
int | $exptime | |
int | $step | |
int | $init | |
int | $flags |
Reimplemented from Wikimedia\ObjectCache\MediumSpecificBagOStuff.
Definition at line 127 of file HashBagOStuff.php.
References Wikimedia\ObjectCache\HashBagOStuff\doGet(), Wikimedia\ObjectCache\HashBagOStuff\doSet(), Wikimedia\ObjectCache\MediumSpecificBagOStuff\isInteger(), and Wikimedia\ObjectCache\HashBagOStuff\KEY_VAL.
|
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 95 of file HashBagOStuff.php.
References Wikimedia\ObjectCache\MediumSpecificBagOStuff\getExpirationAsTimestamp().
Referenced by Wikimedia\ObjectCache\HashBagOStuff\doAdd(), and Wikimedia\ObjectCache\HashBagOStuff\doIncrWithInit().
|
protected |
string | $key |
Definition at line 153 of file HashBagOStuff.php.
References Wikimedia\ObjectCache\HashBagOStuff\doDelete(), Wikimedia\ObjectCache\BagOStuff\getCurrentTime(), and Wikimedia\ObjectCache\HashBagOStuff\KEY_EXP.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\doAdd(), and Wikimedia\ObjectCache\HashBagOStuff\doGet().
Wikimedia\ObjectCache\HashBagOStuff::hasKey | ( | $key | ) |
Does this bag have a non-null value for the given key?
string | $key |
Definition at line 172 of file HashBagOStuff.php.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\doAdd(), and Wikimedia\ObjectCache\HashBagOStuff\doGet().
|
protected |
Definition at line 37 of file HashBagOStuff.php.
|
protected |
Max entries allowed, INF for unlimited.
Definition at line 39 of file HashBagOStuff.php.
const Wikimedia\ObjectCache\HashBagOStuff::KEY_CAS = 2 |
Definition at line 49 of file HashBagOStuff.php.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\doGet().
const Wikimedia\ObjectCache\HashBagOStuff::KEY_EXP = 1 |
Definition at line 48 of file HashBagOStuff.php.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\expire().
const Wikimedia\ObjectCache\HashBagOStuff::KEY_VAL = 0 |
Definition at line 47 of file HashBagOStuff.php.
Referenced by Wikimedia\ObjectCache\HashBagOStuff\doGet(), and Wikimedia\ObjectCache\HashBagOStuff\doIncrWithInit().