Files
notifications-api/app/clients/redis/redis_client.py
Martyn Inglis 7cfc58c994 Merge branch 'master' into caching-with-redis
Conflicts:
	app/celery/tasks.py
	tests/app/celery/test_tasks.py
2016-11-21 13:10:22 +00:00

41 lines
1.2 KiB
Python

from flask.ext.redis import FlaskRedis
from flask import current_app
class RedisClient:
redis_store = FlaskRedis()
active = False
def init_app(self, app):
self.active = app.config.get('REDIS_ENABLED')
if self.active:
self.redis_store.init_app(app)
def set(self, key, value, ex=None, px=None, nx=False, xx=False, raise_exception=False):
if self.active:
try:
self.redis_store.set(key, value, ex, px, nx, xx)
except Exception as e:
current_app.logger.exception(e)
if raise_exception:
raise e
def incr(self, key, raise_exception=False):
if self.active:
try:
return self.redis_store.incr(key)
except Exception as e:
current_app.logger.exception(e)
if raise_exception:
raise e
def get(self, key, raise_exception=False):
if self.active:
try:
return self.redis_store.get(key)
except Exception as e:
current_app.logger.exception(e)
if raise_exception:
raise e
return None