53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
#!/usr/bin/python
|
||
# -*- coding:utf-8 -*-
|
||
|
||
'''
|
||
原始http请求信息以Hash形式保存在redis,hash格式不利于随机取一个http请求
|
||
用此脚本将db0中http请求转移至db1,并以set形式保存
|
||
'''
|
||
|
||
import json
|
||
import redis
|
||
import sys
|
||
import param
|
||
|
||
def queryKey(key):
|
||
r = redis.StrictRedis(host=param.host, port=param.port, password=param.password, db=param.dbOld)
|
||
return r.keys(key)
|
||
|
||
def queryHashFields(key):
|
||
r = redis.StrictRedis(host=param.host, port=param.port, password=param.password, db=param.dbOld)
|
||
return r.hkeys(key)
|
||
|
||
def queryHashValue(key, filed):
|
||
r = redis.StrictRedis(host=param.host, port=param.port, password=param.password, db=param.dbOld)
|
||
return r.hget(key, filed)
|
||
|
||
def setAdd(key, value):
|
||
r = redis.StrictRedis(host=param.host, port=param.port, password=param.password, db=param.dbNew)
|
||
r.sadd(key, value)
|
||
|
||
def main():
|
||
if len(sys.argv) < 2:
|
||
print "缺少参数: python %s hostname" % sys.argv[0]
|
||
exit()
|
||
hostname = sys.argv[1]
|
||
print hostname
|
||
keys = queryKey(hostname)
|
||
for key in keys:
|
||
print key
|
||
fileds = queryHashFields(key)
|
||
total = len(fileds)
|
||
times = 0
|
||
print "共计%d个请求记录" % total
|
||
for filed in fileds:
|
||
times = times + 1
|
||
req = queryHashValue(key, filed)
|
||
setAdd(param.joblist, req)
|
||
if times*10%total == 0:
|
||
print str(times*100.0/total) + "%"
|
||
print "finish..."
|
||
|
||
if __name__ == '__main__':
|
||
main()
|