Source code for redis_func_cache.policies.rr

"""Random replacement eviction cache policy."""

from typing import final

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

__all__ = ("RrPolicy", "RrMultiplePolicy", "RrClusterPolicy", "RrClusterMultiplePolicy")


[docs] @final class RrPolicy(RrScriptsMixin, PickleMd5HashMixin, BaseSinglePolicy): """ Random replacement (RR) eviction policy, single key pair. .. inheritance-diagram:: RrPolicy :parts: 1 All decorated functions share the same Redis key pair. """ __key__ = "rr"
[docs] @final class RrMultiplePolicy(RrScriptsMixin, PickleMd5HashMixin, BaseMultiplePolicy): """ Random replacement (RR) eviction policy, multiple key pairs. .. inheritance-diagram:: RrMultiplePolicy :parts: 1 Each decorated function has its own Redis key pair. """ __key__ = "rr-m"
[docs] @final class RrClusterPolicy(RrScriptsMixin, PickleMd5HashMixin, BaseClusterSinglePolicy): """ Random replacement (RR) eviction policy with Redis cluster support, single key pair. .. inheritance-diagram:: RrClusterPolicy :parts: 1 All decorated functions share the same Redis key pair. """ __key__ = "rr-c"
[docs] @final class RrClusterMultiplePolicy(RrScriptsMixin, PickleMd5HashMixin, BaseClusterMultiplePolicy): """ Random replacement (RR) eviction policy with Redis cluster support, multiple key pairs. .. inheritance-diagram:: RrClusterMultiplePolicy :parts: 1 Each decorated function has its own Redis key pair. """ __key__ = "rr-cm"