使用python查询MySQL数据并写入redis
2018-02-06 10:40
771 查看
import json import os import sys import MySQLdb import redis import hashlib reload(sys) sys.setdefaultencoding('utf-8') class mysql2redis(): def __init__(self, mysqlip, mysqluser, mysqlpwd, redisip, redisauth): self.mysqlip = mysqlip self.mysqluser = mysqluser self.mysqlpwd = mysqlpwd self.redisip = redisip self.redisauth = redisauth def domain2md5(self, domains): for domain in domains: m = hashlib.md5() m.update(domain) self.domain = domain self.read4mysql(m.hexdigest()) def read4mysql(self, site_uuid): print("%s processing..." % self.domain) db = MySQLdb.connect(self.mysqlip, self.mysqluser, self.mysqlpwd, "lxserver") cursor = db.cursor() sql = """SELECT a.reply_type,a.module,b.parent_key,a.user_id,a.type,a.site_uuid,b.connect_key,a.`mode`,a.has_get_file, a.city,a.ip,a.create_time,a.is_connect,a.area,a.root_path,a.`name`,a.connect_url,a.province,a.site_id,a.industry_id,a.harm_level,b.rc4_key FROM lx_site a,lx_user b WHERE a.site_uuid = '%s' AND a.user_id = b.user_id""" % site_uuid cursor.execute(sql) data = cursor.fetchall() self.processData(data) db.close() def processData(self, data): for row in data: siteid = row[18] v = "{'replyType':%s,'module':'%s','parentKey':'%s','userid':%s,'type':'%s','siteUuid':'%s','connectkey':'%s','mode':%s,'hasgetfile':%s,'city':'%s','ip':'%s','createtime':%s,'isconnect':%s,'area':'%s','rootpath':'%s','name':'%s','connecturl':'%s','province':'%s','siteid':'%s','industryid':%s,'harmlevel':%s,'rc4key':'%s'}" % (row[0],row[1],row[2],row[3],row[4],row[5],row[6],row[7],row[8],row[9],row[10],row[11],row[12],row[13],row[14],row[15],row[16],row[17],row[18],row[19],row[20],row[21]) value = json.dumps(v, ensure_ascii=False) is_connect = row[12] self.write2redis(siteid, is_connect, value) print("%s OK" % self.domain) def write2redis(self, siteid, score, value): #print(siteid) #print(score) #print(value) pool = redis.ConnectionPool(host = self.redisip, port = 6379, password = self.redisauth) r = redis.Redis(connection_pool = pool) dic = {siteid:value} #r.hmset("lxsitehashin", dic) #r.zadd("lxsitesetin", score, siteid) if __name__ == '__main__': domains = ['http://aa.com','http://bb.com','http://cc.com','http://dd.com','http://ee.com','http://ff.com'] mysqlip = "mysql.*.rds.bj.baidubce.com" mysqluser = "root" mysqlpwd = "rootpwd" redisip = "127.0.0.1" redisauth = "redispwd" mysql2redis(mysqlip, mysqluser, mysqlpwd, redisip, redisauth).domain2md5(domains) os.system("pause")
相关文章推荐
- 通过python使用游标查询Elasticsearch数据并写入文件
- python编程之一:使用网格索引算法进行空间数据查询
- Redis内存使用达到maxmemory设定值后玩家数据无法写入的问题
- 使用Redis的脚本功能实现Redis中数据简单查询
- 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
- 【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据
- python连接mysql查询数据返回字典格式
- python 查询Mysql并将记录写入到Excel中
- python使用peewee实现mysql数据操作
- php查询mysql中的数据,并将结果返回为JSON格式,提取JSON中的数据,写入页面不同的id号中
- mysql 卖家数据 查询模板 放在博客里 方便使用
- 使用Python将数据从Access导入到MySQL
- PHP使用mysql_fetch_row查询获得数据行列表的方法
- 使用python向Redis批量导入数据
- mysql 使用查询子句插入数据
- java使用jdbc查询mysql数据最简单的例子
- redhat下使用mysql,python,redis,httpsqs,shell脚本开机自启动的一些问题与解决
- python的mysql模块使用like查询
- 怎么样使用Redis来存储和查询ip数据
- SAE中使用MySQL查询数据