MediaWiki
1.33.0
|
Interface to key-value storage behind an HTTP server. More...
Public Member Functions | |
__construct ( $params) | |
add ( $key, $value, $exptime=0, $flags=0) | |
Insert an item if it does not already exist. More... | |
delete ( $key, $flags=0) | |
Delete an item. More... | |
incr ( $key, $value=1) | |
Increase stored value of $key by $value while preserving its TTL. More... | |
set ( $key, $value, $exptime=0, $flags=0) | |
Set an item. More... | |
setLogger (LoggerInterface $logger) | |
Public Member Functions inherited from BagOStuff | |
__construct (array $params=[]) | |
$params include: More... | |
addBusyCallback (callable $workCallback) | |
Let a callback be run to avoid wasting time on special blocking calls. More... | |
changeTTL ( $key, $expiry=0, $flags=0) | |
Change the expiration on a key if it exists. More... | |
clearLastError () | |
Clear the "last error" registry. More... | |
decr ( $key, $value=1) | |
Decrease stored value of $key by $value while preserving its TTL. More... | |
deleteMulti (array $keys, $flags=0) | |
Batch deletion. More... | |
deleteObjectsExpiringBefore ( $date, $progressCallback=false) | |
Delete all objects expiring before a certain date. More... | |
get ( $key, $flags=0) | |
Get an item with the given key. More... | |
getLastError () | |
Get the "last error" registered; clearLastError() should be called manually. More... | |
getMulti (array $keys, $flags=0) | |
Get an associative array containing the item for each of the keys that have items. More... | |
getQoS ( $flag) | |
getScopedLock ( $key, $timeout=6, $expiry=30, $rclass='') | |
Get a lightweight exclusive self-unlocking lock. More... | |
getWithSetCallback ( $key, $ttl, $callback, $flags=0) | |
Get an item with the given key, regenerating and setting it if not found. More... | |
incrWithInit ( $key, $ttl, $value=1, $init=1) | |
Increase stored value of $key by $value while preserving its TTL. More... | |
lock ( $key, $timeout=6, $expiry=6, $rclass='') | |
Acquire an advisory lock on a key string. More... | |
makeGlobalKey ( $class, $component=null) | |
Make a global cache key. More... | |
makeKey ( $class, $component=null) | |
Make a cache key, scoped to this instance's keyspace. More... | |
makeKeyInternal ( $keyspace, $args) | |
Construct a cache key. More... | |
merge ( $key, callable $callback, $exptime=0, $attempts=10, $flags=0) | |
Merge changes into the existing cache value (possibly creating a new one) More... | |
setDebug ( $bool) | |
setMockTime (&$time) | |
setMulti (array $data, $exptime=0, $flags=0) | |
Batch insertion/replace. More... | |
unlock ( $key) | |
Release an advisory lock on a key string. More... | |
Public Attributes | |
const | DEFAULT_CONN_TIMEOUT = 1.2 |
Default connection timeout in seconds. More... | |
const | DEFAULT_REQ_TIMEOUT = 3.0 |
Default request timeout. More... | |
Public Attributes inherited from BagOStuff | |
const | READ_LATEST = 1 |
Bitfield constants for get()/getMulti() More... | |
const | READ_VERIFIED = 2 |
const | WRITE_CACHE_ONLY = 8 |
const | WRITE_SYNC = 4 |
Bitfield constants for set()/merge() More... | |
Public Attributes inherited from IExpiringStore | |
const | ATTR_EMULATION = 1 |
const | ATTR_SYNCWRITES = 2 |
const | ERR_NO_RESPONSE = 1 |
const | ERR_NONE = 0 |
const | ERR_UNEXPECTED = 3 |
const | ERR_UNREACHABLE = 2 |
const | QOS_EMULATION_SQL = 1 |
const | QOS_SYNCWRITES_BE = 2 |
const | QOS_SYNCWRITES_NONE = 1 |
const | QOS_SYNCWRITES_QC = 3 |
const | QOS_SYNCWRITES_SS = 4 |
const | QOS_UNKNOWN = INF |
const | TTL_DAY = 86400 |
const | TTL_HOUR = 3600 |
const | TTL_INDEFINITE = 0 |
const | TTL_MINUTE = 60 |
const | TTL_MONTH = 2592000 |
const | TTL_PROC_LONG = 30 |
const | TTL_PROC_SHORT = 3 |
const | TTL_SECOND = 1 |
const | TTL_WEEK = 604800 |
const | TTL_YEAR = 31536000 |
Protected Member Functions | |
doGet ( $key, $flags=0, &$casToken=null) | |
handleError ( $msg, $rcode, $rerr) | |
Handle storage error. More... | |
Protected Member Functions inherited from BagOStuff | |
cas ( $casToken, $key, $value, $exptime=0, $flags=0) | |
Check and set an item. More... | |
convertToExpiry ( $exptime) | |
Convert an optionally relative time to an absolute time. More... | |
convertToRelative ( $exptime) | |
Convert an optionally absolute expiry time to a relative time. More... | |
debug ( $text) | |
expiryIsRelative ( $exptime) | |
getCurrentTime () | |
isInteger ( $value) | |
Check if a value is an integer. More... | |
mergeFlagMaps (array $bags) | |
Merge the flag maps of one or more BagOStuff objects into a "lowest common denominator" map. More... | |
mergeViaCas ( $key, $callback, $exptime=0, $attempts=10, $flags=0) | |
setLastError ( $err) | |
Set the "last error" registry. More... | |
Private Attributes | |
MultiHttpClient | $client |
string | $url |
REST URL to use for storage. More... | |
Additional Inherited Members | |
Protected Attributes inherited from BagOStuff | |
callable null | $asyncHandler |
int[] | $attrMap = [] |
Map of (ATTR_* class constant => QOS_* class constant) More... | |
callable[] | $busyCallbacks = [] |
string | $keyspace = 'local' |
int | $lastError = self::ERR_NONE |
ERR_* class constant. More... | |
array[] | $locks = [] |
Lock tracking. More... | |
LoggerInterface | $logger |
int | $syncTimeout |
Seconds. More... | |
Interface to key-value storage behind an HTTP server.
Uses URL of the form "baseURL/{KEY}" to store, fetch, and delete values.
E.g., when base URL is /v1/sessions/
, then the store would do:
PUT /v1/sessions/12345758
and fetch would do:
GET /v1/sessions/12345758
delete would do:
DELETE /v1/sessions/12345758
Configure with:
Definition at line 31 of file RESTBagOStuff.php.
RESTBagOStuff::__construct | ( | $params | ) |
Definition at line 55 of file RESTBagOStuff.php.
References $params, as, IExpiringStore\ATTR_SYNCWRITES, DEFAULT_CONN_TIMEOUT, DEFAULT_REQ_TIMEOUT, and IExpiringStore\QOS_SYNCWRITES_QC.
RESTBagOStuff::add | ( | $key, | |
$value, | |||
$exptime = 0 , |
|||
$flags = 0 |
|||
) |
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 BagOStuff.
Definition at line 127 of file RESTBagOStuff.php.
References $value.
RESTBagOStuff::delete | ( | $key, | |
$flags = 0 |
|||
) |
Delete an item.
string | $key |
int | $flags | Bitfield of BagOStuff::WRITE_* constants |
Reimplemented from BagOStuff.
Definition at line 136 of file RESTBagOStuff.php.
References $req, handleError(), and list.
|
protected |
string | $key | |
int | $flags | Bitfield of BagOStuff::READ_* constants [optional] |
mixed | null | &$casToken | Token to use for check-and-set comparisons |
Reimplemented from BagOStuff.
Definition at line 87 of file RESTBagOStuff.php.
References $req, $value, false, handleError(), list, and unserialize().
|
protected |
Handle storage error.
string | $msg | Error message |
int | $rcode | Error code from client |
string | $rerr | Error message from client |
Definition at line 168 of file RESTBagOStuff.php.
References BagOStuff\setLastError().
RESTBagOStuff::incr | ( | $key, | |
$value = 1 |
|||
) |
Increase stored value of $key by $value while preserving its TTL.
string | $key | Key to increase |
int | $value | Value to add to $key (default: 1) [optional] |
Reimplemented from BagOStuff.
Definition at line 149 of file RESTBagOStuff.php.
References $value, BagOStuff\isInteger(), and BagOStuff\READ_LATEST.
RESTBagOStuff::set | ( | $key, | |
$value, | |||
$exptime = 0 , |
|||
$flags = 0 |
|||
) |
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 BagOStuff.
Definition at line 112 of file RESTBagOStuff.php.
References $req, $value, handleError(), list, and serialize().
RESTBagOStuff::setLogger | ( | LoggerInterface | $logger | ) |
LoggerInterface | $logger |
Reimplemented from BagOStuff.
Definition at line 82 of file RESTBagOStuff.php.
References BagOStuff\$logger.
|
private |
Definition at line 47 of file RESTBagOStuff.php.
|
private |
REST URL to use for storage.
Definition at line 53 of file RESTBagOStuff.php.
const RESTBagOStuff::DEFAULT_CONN_TIMEOUT = 1.2 |
Default connection timeout in seconds.
The kernel retransmits the SYN packet after 1 second, so 1.2 seconds allows for 1 retransmit without permanent failure.
Definition at line 37 of file RESTBagOStuff.php.
Referenced by __construct().
const RESTBagOStuff::DEFAULT_REQ_TIMEOUT = 3.0 |
Default request timeout.
Definition at line 42 of file RESTBagOStuff.php.
Referenced by __construct().