定时将redis数据存入mysql_Python定时从Mysql提取数据存入Redis的实现

Python定时从Mysql提取数据存入Redis的实现

时间:2020-11-18 06:21:28 作者:背锅熊 阅读:107次撤稿申请

2.随后实例化redis类,将数据信息简易分析后逐一传到redis序列

3.计时器设计方案每日凌晨12点刚开始跑

ps:redis是个内存数据库,做后台管理消息队列的缓存文件时有非常大的用途,有兴趣爱好的小伙伴们能够去查询有关的文本文档。 # -*- coding:utf-8 -*- import MySQLdbimport scheduleimport timeimport datetimeimport randomimport stringimport redis# get the data from mysqlclass FromSql(object): def __init__(self, conn): self.conn = conn def acquire(self): cursor = self.conn.cursor() try:sql = "SELECT * FROM test WHERE TO_DAYS(NOW()) - TO_DAYS(t) = 1"cursor.execute(sql)rs = cursor.fetchall()#print (rs)for eve in rs:print('%s, %s, %s, %s' % eve)copy_rs = rscursor.close()return copy_rsexcept Exception as e:print("The error: %s" % e)class RedisQueue(object): def __init__(self, name, namespace='queue', **redis_kwargs): """The default connection parameters are: host='localhost', port=6379, db=0""" self.__db= redis.Redis(**redis_kwargs) self.key = '%s:%s' %(namespace, name) def qsize(self): return self.__db.llen(self.key) def put(self, item): self.__db.rpush(self.key, item) def get(self, block=True, timeout=None): if block:item = self.__db.blpop(self.key, timeout=timeout) else:item = self.__db.lpop(self.key) if item:item = item[1] return item def get_nowait(self): return self.get(False)if __name__ == "__main__": # connect mysqldb conn_sql = MySQLdb.connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = '',db = 'test',charset = 'utf8')def job_for_redis(): get_data = FromSql(conn_sql) data = get_data.acquire() q = RedisQueue('test',host='localhost', port=6379, db=0) for single_data in data:for meta_data in single_data:q.put(meta_data)print(meta_data) print("All data had been inserted.") """ try: schedule.every().day.at("00:00").do(job_for_redis) except Exception as e: print('Error: %s'% e)# finally:# conn.close() while True: schedule.run_pending() time.sleep(1)"""

填补专业知识:python定时执行获得利率存进数据库查询

python计划任务:

我们可以应用 轻量的第三方控制模块schedule。最先先安裝:pip install schedule

计划任务的的趣味测试:import scheduleimport time def job(): print("I'm working...") schedule.every(10).minutes.do(job)# 每过十分钟实行一次每日任务schedule.every().hour.do(job)# 每过一小时实行一次每日任务schedule.every().day.at("10:30").do(job) # 每天10:30实行一次每日任务schedule.every(5).to(10).days.do(job)# 每5-10天实行一次每日任务schedule.every().monday.do(job)# 每星期一的这个时候实行一次每日任务schedule.every().wednesday.at("13:15").do(job) # 每周三13:15实行一次每日任务 while True: schedule.run_pending()

读取数据存进数据库查询:(文件格式很有可能不太对,也有一些标记。自身改动一下就可以)import pymysqlimport scheduleimport timeimport requestsimport pandasfrom sqlalchemy import create_engine#获得美金的全部外汇交易def job(): content = '美金' url = 'http://www.boc.cn/sourcedb/whpj/index.html' #外汇数据详细地址 html = requests.get(url).content.decode('utf-8') index = html.index('td' content '/td') str = html[index:index 300] result = re.findall('td(.*)/td',str) print("货币:" result[0]) print("现汇买入价:" result[1]) print("现钞买入价:" result[2]) print("现汇卖出价:" result[3]) print("现金卖出价:" result[4]) print("中国银行合同价:" result[5]) print("发布时间:" result[6] ' ' result[7]) #本地地址 数据库查询账户 登陆密码 数据库查询名 db = pymysql.connect('localhost','root','root','pinyougoudb') cursor = db.cursor() #sql语句 sql = "update tb_money set huiBuy = %s,chaoBuy = %s,huiSale = %s,chaoSale = %s,centerResult= %s,publishTime = '%s' where typeId = '%s'" % (result[1], result[2], result[3], result[4], result[5], result[6] ' ' result[7], result[0]) cursor.execute(sql) db.commit() print('success') # 查看句子,将存进的数据信息查出 # sqlalchemy 开展数据库查询复位 engine = create_engine('mysql pymysql://root:root@localhost:3306/pinyougoudb') sql = '''select * from tb_money''' # pandas 开展数据库查询读写能力 df = pandas.read_sql_query(sql,engine) print(df) db.commit()# 每过一些中更新一次#schedule.every(0.1).minutes.do(job)#每日何时更新schedule.every().day.at("09:29").do(job)schedule.every().day.at("09:30").do(job)#一直循环系统 了解符合条件实行while True: schedule.run_pending()

之上这篇Python定时执行从Mysql获取数据信息存进Redis的完成便是我共享给大伙儿的所有内容了,期待能给大伙儿一个参照,也期待大伙儿多多的适用本网站。文章内容来源于:www.seo-7.comwww.sEo-6.comhttp://www.seo-6.com/seoyh/seojichurm/118446.html

(编辑:部分内容来互联网)

顶一下

(0)

0%

踩一下

(0)

0%

版权声明:

1、本文由SEO内容部分来自互联网,保留著作所有权,转载请注明来源,否则谢绝转载;

2、非原创内容会有明确作者及来源标注。3、本文标题:↓↓↓Python定时从Mysql提取数据存入Redis的实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值