-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathredis_wrapper.py
46 lines (33 loc) · 1.1 KB
/
redis_wrapper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import json
import os
import redis
def _get_env_credentials():
env_data = {"host": os.environ.get("REDIS_HOST", "localhost"),
"port": int(os.environ.get("REDIS_PORT", 6379)),
"db": int(os.environ.get("REDIS_DB", 0))}
return env_data
class RedisClient:
def __init__(self):
self._client = redis.Redis(**_get_env_credentials())
def get(self, key):
value = self._client.get(key).decode('utf8')
wrapped_value = json.loads(value)
return wrapped_value['_value']
def set(self, key, value):
dv = {"_value": value}
self._client.set(key, json.dumps(dv))
return {'key': key, 'value': value}
def exists(self, key):
return self._client.exists(key)
def delete(self, key):
self._client.delete(key)
def get_all(self):
keys = self._client.keys("*")
result = []
for key in keys:
key = key.decode('utf8')
key_value = {key: self.get(key)}
result.append(key_value)
return result
def flush_db(self):
self._client.flushdb()