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.