Skip to content

Commit

Permalink
Merge pull request shidenggui#48 from ruyiqf/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
shidenggui authored Jul 17, 2016
2 parents 8e6a24e + 9312685 commit a95c2d9
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 0 deletions.
1 change: 1 addition & 0 deletions easyquant/easydealutils/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .easyredis import RedisIo
87 changes: 87 additions & 0 deletions easyquant/easydealutils/easyredis.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# coding: utf-8
import os
import sys
import redis
import json

from ..log_handler import DefaultLogHandler

"""Debug"""
"""
sys.path.append('..')
from log_handler import DefaultLogHandler
"""

class RedisIo(object):
"""Redis操作类"""

def __init__(self, conf):
self.config = self.file2dict(conf)
if self.config['passwd'] is None:
self.r = redis.Redis(host=self.config['redisip'], port=self.config['redisport'], db=self.config['db'])
else:
self.r = redis.Redis(host=self.config['redisip'], port=self.config['redisport'], db=self.config['db'], password = self.config['passwd'])
self.log = self.log_handler()

def file2dict(self, path):
#读取配置文件
with open(path) as f:
return json.load(f)

def cleanup(self):
#清理Redis当前数据库
self.r.flushdb()

def lookup_redist_info(self):
#查询Redis配置
info = self.r.info()
for key in info:
self.log.info('%s:%s' % (key, info[key]))

def set_key_value(self, key, value):
#设置键值对key<-->value
self.r.set(key, value)

def get_key_value(self, key):
#查询键值对
return self.r.get(key)

def save(self):
#强行保存数据到硬盘
return self.r.save()

def get_keys(self):
#获取当前数据库里面所有键值
return self.r.keys()

def delete_key(self, key):
#删除某个键
return self.r.delete(key)

def push_list_value(self, listname, value):
#推入到队列
return self.r.lpush(listname, value)

def pull_list_range(self, listname, starpos=0, endpos=-1):
#获取队列某个连续片段
return self.r.lrange(listname, starpos, endpos)

def get_list_len(self, listname):
#获取队列长度
return self.r.llen(listname)

def log_handler(self):
#重定向日志
return DefaultLogHandler()

def main():
ri = RedisIo('redis.conf')
ri.lookup_redist_info()
ri.set_key_value('test1', 1)
ri.log.info(ri.get_key_value('test1'))
ri.push_list_value('test2', 1)
ri.push_list_value('test2', 2)
ri.log.info(ri.pull_list_range('test2',0,-1))

if __name__ == '__main__':
main()
2 changes: 2 additions & 0 deletions easyquant/main_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import os
import pathlib
import sys
import time
from collections import OrderedDict
import dill

Expand Down Expand Up @@ -65,6 +66,7 @@ def __init__(self, broker=None, need_data=None, quotation_engines=None,
def start(self):
"""启动主引擎"""
self.event_engine.start()
time.sleep(10)
for quotation_engine in self.quotation_engines:
quotation_engine.start()
self.clock_engine.start()
Expand Down
7 changes: 7 additions & 0 deletions redis.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"redisip": "",
"redisport": "",
"passwd": "",
"db": 0
}

0 comments on commit a95c2d9

Please sign in to comment.