Algorithms

algorithm

description

cache_params

implemented version

Other

LRU

Least recent used

None

C and Python

Optimal

Optimal

None

C and Python

FIFO

First in first out

None

C and Python

LFU

Least frequently used

None

C

LFU_Fast

A faster implementation of least frequently used

None

C

LRU_2

LRU on the second to the most recent timestamp

None

C

LRU_K

LRU on the Kth to the most recent timestamp

{“K”: K}

C

SLRU

segmented LRU with different number of user-specified segments

{“N_segments”: N}

C

MRU

Most recent used

None

C and Python

Random

Random evict element

None

C and Python

clock

Second chance algorithm, when evicting, if the element that current clock hand points to has value 1, set to 0, giving it a second chance, otherwise, evict it.

None

Python

AdaptiveSLRU

Similar to ARC, but use two LRU segments instead of one LRU and one LFU

None

Python

SLRU

Segmented LRU with N segments

{“N”:N}

Python

S4LRU

Segmented LRU with four segments

None

Python

LFU_RR

Least frequent used, when there are more than one with same least frequency, random select one

None

Python

LFU_MRU

Least frequent used, when there are more than one with same least frequency, select most recent one

None

Python

Please notice that when passing cache_params, all parameters are stored in a dictionary.