多进程redis存储mysql

本文介绍了一种使用Python和Redis实现的跨数据库数据迁移方案。该方案通过从Redis中获取UID,然后在一个数据库中查询相关记录,并将这些记录插入到另一个数据库中。文中还展示了如何利用多进程提高迁移效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个表不在同一个库中,我是将uid存到redis,进行查询存储数据
import pymysql
import redis
from multiprocessing import Process
import time

r = redis.Redis(host=“127.0.0.1”,password=‘123456’, port=6379)
def insert(key):
con86 = pymysql.Connect(host=’’, user=’’, password=’’, port=,charset=’’,database=’’)
cur86 = con86.cursor()
con92 = pymysql.Connect(host=’’, user=’’, password=’’, port=,charset=’’,database=’’)
cur92 = con92.cursor()
while True:
uid = r.rpop(key).decode(‘utf-8’)
print(uid)
# id = 3
sql2 = f’select id,name,uid from test.wet_base where uid in ({uid})’
start = time.time()
cur86.execute(sql2)
s = cur86.fetchone()
print(sql2)
print(s)
if s:
id = s[0]
name = s[1]
uid = s[2]
list = [id,name,uid]
sql3 = ‘insert into back.student values(%s,%s,%s)’
try:
cur92.execute(sql3, list)
con92.commit()
except Exception as e:
print(e)
con92.rollback()
r.rpush(‘school:id’)
end = time.time()
print(‘Running time: {} Seconds’.format(end - start))
if name == ‘main’:
key=‘school:uid’
for i in range(50):
p=Process(target=insert,args=(key,))
p.start()

记得点赞,关注哦,你们是我前进的动力!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值