def invalidate_model(model): """ Invalidates all caches for given model. NOTE: This is a heavy artilery which uses redis KEYS request, which could be relatively slow on large datasets. """ conjs_keys = redis_client.keys('conj:%s:*' % get_model_name(model)) if conjs_keys: cache_keys = redis_client.sunion(conjs_keys) redis_client.delete(*(list(cache_keys) + conjs_keys))
def invalidate_model(model): """ Invalidates all caches for given model. NOTE: This is a heavy artilery which uses redis KEYS request, which could be relatively slow on large datasets. """ conjs_keys = redis_client.keys("conj:%s:*" % get_model_name(model)) if isinstance(conjs_keys, str): conjs_keys = conjs_keys.split() if conjs_keys: cache_keys = redis_client.sunion(conjs_keys) redis_client.delete(*(list(cache_keys) + conjs_keys)) # BUG: a race bug here, ignoring since invalidate_model() is not for hot production use cache_schemes.clear(model)
def invalidate_model(model): """ Invalidates all caches for given model. NOTE: This is a heavy artilery which uses redis KEYS request, which could be relatively slow on large datasets. """ conjs_keys = redis_client.keys('conj:%s:*' % get_model_name(model)) if isinstance(conjs_keys, str): conjs_keys = conjs_keys.split() if conjs_keys: cache_keys = redis_client.sunion(conjs_keys) redis_client.delete(*(list(cache_keys) + conjs_keys)) # BUG: a race bug here, ignoring since invalidate_model() is not for hot production use cache_schemes.clear(model)