wjtx/tools/combine_db/tools_conf/create_conf.py
pengtao a22b875b91 1
2021-06-30 11:31:02 +08:00

61 lines
1.8 KiB
Python

#!/usr/bin/python
# -*- coding:utf-8 _*-
"""
@author: pengtao
@file: create_conf.py
@time: 2020/04/24
"""
import redis
import json
import pdb
import natsort
from operator import itemgetter
redis_conf = {"host": "10.10.6.4", "port": "6379"}
def get_redis():
game_data = list()
r = redis.Redis(host=redis_conf['host'], port=redis_conf['port'], charset='utf8', db=redis_conf.get('db') or 0,
decode_responses=True)
key = 'game_info'
data = r.hgetall(key)
for key in data.keys():
recode = json.loads(data[key])
# "{\"areaId\":5002,\"combineTime\":946656000000,\"externalIp\":\"10.10.6.201\",
# \"followerId\":0,\"gameRedisPort\":6382,\"gameRedsiHost\":\"10.10.6.201\",
# \"hidden\":false,\"innerIp\":\"10.10.6.201\",\"openTime\":1586397600000,
# \"pid\":\"union01\",\"status\":1,\"tcpPort\":9002,\"webPort\":19002,
# \"worldId\":5002,\"worldName\":\"\xe5\x8f\x8c\xe7\xba\xbf1\xe6\x9c\x8d\"}"
if int(recode['areaId']) < 4000:
tt = dict()
tt['serverid'] = recode['areaId']
tt['ip'] = recode['innerIp']
tt['redis_port'] = recode['gameRedisPort']
game_data.append(tt)
return natsort.natsorted(game_data, key=itemgetter(*['ip']))
def write_csv(filename, data):
with open(filename, 'w') as f:
for line in data:
one_line = f"{line['serverid']}\t{line['ip']}\t{line['redis_port']}\n"
f.writelines(one_line)
def sort_dict(data_d, key):
import natsort
from operator import itemgetter
return natsort.natsorted(data_d, key=itemgetter(*[key]))
def create_conf_work():
data = get_redis()
new_data = sort_dict(data, 'serverid')
filename = "1009.csv"
write_csv(filename, new_data)
if __name__ == '__main__':
create_conf_work()