@@ -19,26 +19,35 @@ paging = False
1919result_template = 'key-value.html'
2020exact_match_only = True
2121
22−redis_client = redis.StrictRedis(
23− host=host,
24− port=port,
25− db=db,
26− password=password or None,
27− decode_responses=True,
28−)
22+_redis_client = None
23+
24+
25+def init(_):
26+ connect()
27+
28+
29+def connect():
30+ global _redis_client
31+ _redis_client = redis.StrictRedis(
32+ host=host,
33+ port=port,
34+ db=db,
35+ password=password or None,
36+ decode_responses=True,
37+ )
2938
3039
3140def search(query, params):
3241 if not exact_match_only:
3342 return search_keys(query)
34− ret = redis_client.hgetall(query)
43+ ret = _redis_client.hgetall(query)
3544 if ret:
3645 ret['template'] = result_template
3746 return [ret]
3847 if ' ' in query:
3948 qset, rest = query.split(' ', 1)
4049 ret = []
41− for res in redis_client.hscan_iter(qset, match='*{}*'.format(rest)):
50+ for res in _redis_client.hscan_iter(qset, match='*{}*'.format(rest)):
4251 ret.append({res[0]: res[1], 'template': result_template})
4352 return ret
4453 return []
@@ -46,13 +55,13 @@ def search(query, params):
4655
4756def search_keys(query):
4857 ret = []
49− for key in redis_client.scan_iter(match='*{}*'.format(query)):
50− key_type = redis_client.type(key)
58+ for key in _redis_client.scan_iter(match='*{}*'.format(query)):
59+ key_type = _redis_client.type(key)
5160 res = None
5261 if key_type == 'hash':
53− res = redis_client.hgetall(key)
62+ res = _redis_client.hgetall(key)
5463 elif key_type == 'list':
55− res = dict(enumerate(redis_client.lrange(key, 0, -1)))
64+ res = dict(enumerate(_redis_client.lrange(key, 0, -1)))
5665 if res:
5766 res['template'] = result_template
5867 res['redis_key'] = key