MediaWiki  master
CachedBagOStuff Class Reference

Wrapper around a BagOStuff that caches data in memory. More...

Inheritance diagram for CachedBagOStuff:
Collaboration diagram for CachedBagOStuff:

Public Member Functions

 __construct (BagOStuff $backend, $params=[])
 
 add ( $key, $value, $exptime=0, $flags=0)
 
 addBusyCallback (callable $workCallback)
 
 changeTTL ( $key, $exptime=0, $flags=0)
 
 changeTTLMulti (array $keys, $exptime, $flags=0)
 
 clearLastError ()
 
 decr ( $key, $value=1)
 
 delete ( $key, $flags=0)
 
 deleteMulti (array $keys, $flags=0)
 
 deleteObjectsExpiringBefore ( $timestamp, callable $progress=null, $limit=INF)
 
 get ( $key, $flags=0)
 
 getLastError ()
 
 getMulti (array $keys, $flags=0)
 
 incr ( $key, $value=1)
 
 incrWithInit ( $key, $ttl, $value=1, $init=1)
 
 lock ( $key, $timeout=6, $expiry=6, $rclass='')
 
 makeGlobalKey ( $class,... $components)
 Make a global cache key. More...
 
 makeKey ( $class,... $components)
 Make a cache key, scoped to this instance's keyspace. More...
 
 makeKeyInternal ( $keyspace, $args)
 
 merge ( $key, callable $callback, $exptime=0, $attempts=10, $flags=0)
 
 set ( $key, $value, $exptime=0, $flags=0)
 
 setDebug ( $enabled)
 
 setMockTime (&$time)
 
 setMulti (array $data, $exptime=0, $flags=0)
 
 unlock ( $key)
 
- Public Member Functions inherited from BagOStuff
 __construct (array $params=[])
 Parameters include: More...
 
 add ( $key, $value, $exptime=0, $flags=0)
 Insert an item if it does not already exist. More...
 
 addBusyCallback (callable $workCallback)
 Let a callback be run to avoid wasting time on special blocking calls. More...
 
 changeTTL ( $key, $exptime=0, $flags=0)
 Change the expiration on a key if it exists. More...
 
 changeTTLMulti (array $keys, $exptime, $flags=0)
 Change the expiration of multiple keys that exist. More...
 
 clearLastError ()
 Clear the "last error" registry. More...
 
 decr ( $key, $value=1)
 Decrease stored value of $key by $value while preserving its TTL. More...
 
 delete ( $key, $flags=0)
 Delete an item. More...
 
 deleteMulti (array $keys, $flags=0)
 Batch deletion. More...
 
 deleteObjectsExpiringBefore ( $timestamp, callable $progress=null, $limit=INF)
 Delete all objects expiring before a certain date. More...
 
 get ( $key, $flags=0)
 Get an item with the given key. More...
 
 getCurrentTime ()
 
 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...
 
 getSegmentationSize ()
 
 getSegmentedValueMaxSize ()
 
 getWithSetCallback ( $key, $ttl, $callback, $flags=0)
 Get an item with the given key, regenerating and setting it if not found. More...
 
 incr ( $key, $value=1)
 Increase stored value of $key by $value while preserving its TTL. 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,... $components)
 Make a global cache key. More...
 
 makeKey ( $class,... $components)
 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...
 
 set ( $key, $value, $exptime=0, $flags=0)
 Set an item. More...
 
 setDebug ( $enabled)
 
 setLogger (LoggerInterface $logger)
 
 setMockTime (&$time)
 
 setMulti (array $data, $exptime=0, $flags=0)
 Batch insertion/replace. More...
 
 unlock ( $key)
 Release an advisory lock on a key string. More...
 

Protected Attributes

BagOStuff $backend
 
HashBagOStuff $procCache
 
- Protected Attributes inherited from BagOStuff
callable null $asyncHandler
 
int [] $attrMap = []
 Map of (ATTR_* class constant => QOS_* class constant) More...
 
bool $debugMode = false
 
LoggerInterface $logger
 

Additional Inherited Members

- Public Attributes inherited from BagOStuff
const READ_LATEST = 1
 Bitfield constants for get()/getMulti(); these are only advisory. More...
 
const READ_VERIFIED = 2
 
const WRITE_ALLOW_SEGMENTS = 16
 
const WRITE_BACKGROUND = 64
 
const WRITE_CACHE_ONLY = 8
 
const WRITE_PRUNE_SEGMENTS = 32
 
const WRITE_SYNC = 4
 Bitfield constants for set()/merge(); these are only advisory. 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 inherited from BagOStuff
 mergeFlagMaps (array $bags)
 Merge the flag maps of one or more BagOStuff objects into a "lowest common denominator" map. More...
 

Detailed Description

Wrapper around a BagOStuff that caches data in memory.

The differences between CachedBagOStuff and MultiWriteBagOStuff are:

  • CachedBagOStuff supports only one "backend".
  • There's a flag for writes to only go to the in-memory cache.
  • The in-memory cache is always updated.
  • Locks go to the backend cache (with MultiWriteBagOStuff, it would wind up going to the HashBagOStuff used for the in-memory cache).

Definition at line 36 of file CachedBagOStuff.php.

Constructor & Destructor Documentation

◆ __construct()

CachedBagOStuff::__construct ( BagOStuff  $backend,
  $params = [] 
)
Parameters
BagOStuff$backendPermanent backend to use
array$paramsParameters for HashBagOStuff

Definition at line 46 of file CachedBagOStuff.php.

References $backend, and $params.

Member Function Documentation

◆ add()

CachedBagOStuff::add (   $key,
  $value,
  $exptime = 0,
  $flags = 0 
)

Definition at line 106 of file CachedBagOStuff.php.

References $value.

◆ addBusyCallback()

CachedBagOStuff::addBusyCallback ( callable  $workCallback)

Definition at line 212 of file CachedBagOStuff.php.

◆ changeTTL()

CachedBagOStuff::changeTTL (   $key,
  $exptime = 0,
  $flags = 0 
)

Definition at line 123 of file CachedBagOStuff.php.

◆ changeTTLMulti()

CachedBagOStuff::changeTTLMulti ( array  $keys,
  $exptime,
  $flags = 0 
)

Definition at line 185 of file CachedBagOStuff.php.

◆ clearLastError()

CachedBagOStuff::clearLastError ( )

Definition at line 163 of file CachedBagOStuff.php.

◆ decr()

CachedBagOStuff::decr (   $key,
  $value = 1 
)

Definition at line 200 of file CachedBagOStuff.php.

◆ delete()

CachedBagOStuff::delete (   $key,
  $flags = 0 
)

Definition at line 97 of file CachedBagOStuff.php.

◆ deleteMulti()

CachedBagOStuff::deleteMulti ( array  $keys,
  $flags = 0 
)

Definition at line 176 of file CachedBagOStuff.php.

◆ deleteObjectsExpiringBefore()

CachedBagOStuff::deleteObjectsExpiringBefore (   $timestamp,
callable  $progress = null,
  $limit = INF 
)

Definition at line 137 of file CachedBagOStuff.php.

◆ get()

CachedBagOStuff::get (   $key,
  $flags = 0 
)

Definition at line 59 of file CachedBagOStuff.php.

References $value.

Referenced by MediaWiki\Session\SessionBackend\__construct().

◆ getLastError()

CachedBagOStuff::getLastError ( )

Definition at line 159 of file CachedBagOStuff.php.

◆ getMulti()

CachedBagOStuff::getMulti ( array  $keys,
  $flags = 0 
)

Definition at line 69 of file CachedBagOStuff.php.

References $value, as, and setMulti().

◆ incr()

CachedBagOStuff::incr (   $key,
  $value = 1 
)

Definition at line 194 of file CachedBagOStuff.php.

◆ incrWithInit()

CachedBagOStuff::incrWithInit (   $key,
  $ttl,
  $value = 1,
  $init = 1 
)

Definition at line 206 of file CachedBagOStuff.php.

◆ lock()

CachedBagOStuff::lock (   $key,
  $timeout = 6,
  $expiry = 6,
  $rclass = '' 
)

Definition at line 129 of file CachedBagOStuff.php.

◆ makeGlobalKey()

CachedBagOStuff::makeGlobalKey (   $class,
  $components 
)

Make a global cache key.

Parameters
string$classKey class
string...$components Key components (starting with a key collection name)
Returns
string Colon-delimited list of $keyspace followed by escaped components

Implements IStoreKeyEncoder.

Definition at line 155 of file CachedBagOStuff.php.

◆ makeKey()

CachedBagOStuff::makeKey (   $class,
  $components 
)

Make a cache key, scoped to this instance's keyspace.

Parameters
string$classKey class
string...$components Key components (starting with a key collection name)
Returns
string Colon-delimited list of $keyspace followed by escaped components

Implements IStoreKeyEncoder.

Definition at line 151 of file CachedBagOStuff.php.

Referenced by MediaWiki\Session\SessionBackend\__construct(), MediaWiki\Session\TestBagOStuff\deleteSession(), MediaWiki\Session\TestBagOStuff\getSession(), MediaWiki\Session\TestBagOStuff\getSessionFromBackend(), and MediaWiki\Session\TestBagOStuff\setRawSession().

◆ makeKeyInternal()

CachedBagOStuff::makeKeyInternal (   $keyspace,
  $args 
)

Definition at line 147 of file CachedBagOStuff.php.

References $args.

◆ merge()

CachedBagOStuff::merge (   $key,
callable  $callback,
  $exptime = 0,
  $attempts = 10,
  $flags = 0 
)

Definition at line 117 of file CachedBagOStuff.php.

◆ set()

CachedBagOStuff::set (   $key,
  $value,
  $exptime = 0,
  $flags = 0 
)

Definition at line 88 of file CachedBagOStuff.php.

◆ setDebug()

CachedBagOStuff::setDebug (   $enabled)

Definition at line 54 of file CachedBagOStuff.php.

◆ setMockTime()

CachedBagOStuff::setMockTime ( $time)

Definition at line 216 of file CachedBagOStuff.php.

References $time.

◆ setMulti()

CachedBagOStuff::setMulti ( array  $data,
  $exptime = 0,
  $flags = 0 
)

Definition at line 167 of file CachedBagOStuff.php.

Referenced by getMulti().

◆ unlock()

CachedBagOStuff::unlock (   $key)

Definition at line 133 of file CachedBagOStuff.php.

Member Data Documentation

◆ $backend

BagOStuff CachedBagOStuff::$backend
protected

Definition at line 38 of file CachedBagOStuff.php.

Referenced by __construct().

◆ $procCache

HashBagOStuff CachedBagOStuff::$procCache
protected

Definition at line 40 of file CachedBagOStuff.php.


The documentation for this class was generated from the following file: