Source code for src.data_interface.cache

from redis import StrictRedis
from config import CACHE_TIMEOUT, CACHE_HOST


[docs]class Cache(object): def __init__(self): self.redis_cache = StrictRedis(host=CACHE_HOST) self.ex = CACHE_TIMEOUT
[docs] def get(self, key, start=None, end=None): """ Get an object from cache by its key Args: key (str): cache key start (int): when querying a redis list,\ starting range of the list. end (int): when querying a redis list, ending range of the list. Returns: str: cached object """ if not (start is None or end is None): result = self.redis_cache.lrange(key, start=start, end=end) else: result = self.redis_cache.get(key) return result
[docs] def set(self, key, value): """ Set an object in cache by its key Args: key (str): cache key value (str): object to store in cache """ return self.redis_cache.set(key, value, ex=self.ex)
[docs] def append(self, key, value): """ Append to a redis list Args: key (str): cache key value (str): object to store in cache """ return self.redis_cache.lpush(key, value)