Skip to content

Ed-XCF/redis-property

Repository files navigation

redis-property

GitHub Build Status codecov PyPI

A decorator for caching properties in redis. Inspired by cached-property

Installation

pip3 install redis-property

How to use it

Setup redis_property

import redis_property

redis_property.configure(
    "redis://:123456@example:6379/0", 
    lambda o, f: f"{type(o).__name__}:{o.id}:{f.__name__}"
)

use it like python property

from redis_property import redis_property

class Something:
    id = 1
    
    @redis_property(10)  # 24h by default
    def name(self):
        return 1

something = Something()
print(something.name)

invalidating the cache

del something.name

work with cached-property

from cached_property import cached_property
from redis_property import redis_property

class Something:
    id = 1
    
    @cached_property
    @redis_property
    def name(self):
        return 1