Source code for redis_func_cache.policies.lru

"""Least Recently Used eviction cache policies."""

from typing import final

from ..mixins.hash import PickleMd5HashMixin
from ..mixins.scripts import LruScriptsMixin, LruTScriptsMixin
from .base import BaseClusterMultiplePolicy, BaseClusterSinglePolicy, BaseMultiplePolicy, BaseSinglePolicy

__all__ = (
    "LruPolicy",
    "LruMultiplePolicy",
    "LruClusterPolicy",
    "LruClusterMultiplePolicy",
    "LruTPolicy",
    "LruTMultiplePolicy",
    "LruTClusterPolicy",
    "LruTClusterMultiplePolicy",
)


[docs] @final class LruPolicy(LruScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy): """ LRU eviction policy, single key pair. .. inheritance-diagram:: LruPolicy :parts: 1 All decorated functions share the same Redis key pair. """ __key__ = "lru"
[docs] @final class LruMultiplePolicy(LruScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy): """ LRU eviction policy, multiple key pairs. .. inheritance-diagram:: LruMultiplePolicy :parts: 1 Each decorated function has its own Redis key pair. """ __key__ = "lru-m"
[docs] @final class LruClusterPolicy(LruScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy): """ LRU eviction policy with Redis cluster support, single key pair. .. inheritance-diagram:: LruClusterPolicy :parts: 1 All decorated functions share the same Redis key pair. """ __key__ = "lru-c"
[docs] @final class LruClusterMultiplePolicy(LruScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy): """ LRU eviction policy with Redis cluster support, multiple key pairs. .. inheritance-diagram:: LruClusterMultiplePolicy :parts: 1 Each decorated function has its own Redis key pair. """ __key__ = "lru-cm"
[docs] @final class LruTPolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy): """ LRU-T (timestamp-based pseudo LRU) eviction policy, single key pair. .. inheritance-diagram:: LruTPolicy :parts: 1 All decorated functions share the same Redis key pair. """ __key__ = "lru_t"
[docs] @final class LruTMultiplePolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy): """ LRU-T (timestamp-based pseudo LRU) eviction policy, multiple key pairs. .. inheritance-diagram:: LruTMultiplePolicy :parts: 1 Each decorated function has its own Redis key pair. """ __key__ = "lru_t-m"
[docs] @final class LruTClusterPolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy): """ LRU-T (timestamp-based pseudo LRU) eviction policy with Redis cluster support, single key pair. .. inheritance-diagram:: LruTClusterPolicy :parts: 1 All decorated functions share the same Redis key pair. """ __key__ = "lru_t-c"
[docs] @final class LruTClusterMultiplePolicy(LruTScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy): """ LRU-T (timestamp-based pseudo LRU) eviction policy with Redis cluster support, multiple key pairs. .. inheritance-diagram:: LruTClusterMultiplePolicy :parts: 1 Each decorated function has its own Redis key pair. """ __key__ = "lru_t-cm"