MediaWiki REL1_31
MapCacheLRU Class Reference

Handles a simple LRU key/value map with a maximum number of entries. More...

Public Member Functions

 __construct ( $maxKeys)
 
 clear ( $keys=null)
 Clear one or several cache entries, or all cache entries.
 
 get ( $key)
 Get the value for a key.
 
 getAllKeys ()
 
 getWithSetCallback ( $key, callable $callback, $rank=1.0)
 Get an item with the given key, producing and setting it if not found.
 
 has ( $key)
 Check if a key exists.
 
 set ( $key, $value, $rank=1.0)
 Set a key/value pair.
 
 toArray ()
 

Static Public Member Functions

static newFromArray (array $values, $maxKeys)
 

Protected Member Functions

 ping ( $key)
 Push an entry to the top of the cache.
 

Protected Attributes

array $cache = []
 
 $maxCacheKeys
 

Detailed Description

Handles a simple LRU key/value map with a maximum number of entries.

Use ProcessCacheLRU if hierarchical purging is needed or objects can become stale

See also
ProcessCacheLRU
Since
1.23

Definition at line 34 of file MapCacheLRU.php.

Constructor & Destructor Documentation

◆ __construct()

MapCacheLRU::__construct (   $maxKeys)
Parameters
int$maxKeysMaximum number of entries allowed (min 1).
Exceptions
ExceptionWhen $maxCacheKeys is not an int or not above zero.

Definition at line 44 of file MapCacheLRU.php.

Member Function Documentation

◆ clear()

MapCacheLRU::clear (   $keys = null)

Clear one or several cache entries, or all cache entries.

Parameters
string | array$keys
Returns
void

Definition at line 178 of file MapCacheLRU.php.

References $keys, array(), as, and cache.

◆ get()

MapCacheLRU::get (   $key)

Get the value for a key.

This returns null if the key is not set. If the item is already set, it will be pushed to the top of the cache.

Parameters
string$key
Returns
mixed Returns null if the key was not found

Definition at line 130 of file MapCacheLRU.php.

References cache, has(), and ping().

◆ getAllKeys()

MapCacheLRU::getAllKeys ( )
Returns
array
Since
1.25

Definition at line 144 of file MapCacheLRU.php.

References cache.

◆ getWithSetCallback()

MapCacheLRU::getWithSetCallback (   $key,
callable  $callback,
  $rank = 1.0 
)

Get an item with the given key, producing and setting it if not found.

If the callback returns false, then nothing is stored.

Since
1.28
Parameters
string$key
callable$callbackCallback that will produce the value
float$rankBottom fraction of the list where keys start off [Default: 1.0]
Returns
mixed The cached value if found or the result of $callback otherwise

Definition at line 159 of file MapCacheLRU.php.

References $value, and has().

◆ has()

MapCacheLRU::has (   $key)

Check if a key exists.

Parameters
string$key
Returns
bool

Definition at line 114 of file MapCacheLRU.php.

References cache.

Referenced by get(), getWithSetCallback(), and set().

◆ newFromArray()

static MapCacheLRU::newFromArray ( array  $values,
  $maxKeys 
)
static
Parameters
array$valuesKey/value map in order of increasingly recent access
int$maxKeys
Returns
MapCacheLRU
Since
1.30

Definition at line 57 of file MapCacheLRU.php.

◆ ping()

MapCacheLRU::ping (   $key)
protected

Push an entry to the top of the cache.

Parameters
string$key

Definition at line 193 of file MapCacheLRU.php.

References cache.

Referenced by get(), and set().

◆ set()

MapCacheLRU::set (   $key,
  $value,
  $rank = 1.0 
)

Set a key/value pair.

This will prune the cache if it gets too large based on LRU. If the item is already set, it will be pushed to the top of the cache.

To reduce evictions due to one-off use of many new keys, $rank can be set to have keys start at the top of a bottom fraction of the list. A value of 3/8 means values start at the top of the bottom 3/8s of the list and are moved to the top of the list when accessed a second time.

Parameters
string$key
mixed$value
float$rankBottom fraction of the list where keys start off [Default: 1.0]
Returns
void

Definition at line 89 of file MapCacheLRU.php.

References $value, cache, has(), key, and ping().

◆ toArray()

MapCacheLRU::toArray ( )
Returns
array Key/value map in order of increasingly recent access
Since
1.30

Definition at line 70 of file MapCacheLRU.php.

References $cache.

Member Data Documentation

◆ $cache

array MapCacheLRU::$cache = []
protected

Definition at line 36 of file MapCacheLRU.php.

◆ $maxCacheKeys

MapCacheLRU::$maxCacheKeys
protected

Definition at line 38 of file MapCacheLRU.php.


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