pythonpip导入mysql_python mysql数据通过pipline批量导入 redis

python mysql数据通过pipline批量导入 redis

作为单线程数据库,redis在批量执行一系列命令时,如果每次都单独执行,就需要多次等待服务器进行响应,由于网络延迟通常会导致命令运行效率低下,而pipline能够做到一次性提交大量请求给redisserver,执行完成后再获取相应结果,只需要进行一次请求,命令越多,pipline对于效率的提升就越为明显,因此是一种高效数据导入的方式。mysql数据导入redis就是pipline的一个应用场景。

以下是通过python进行mysql数据导入redis的例子:

from rediscluster import RedisCluster

import pymysql

import pickle

startup_nodes = [{"host":'10.132.221.120',"port":'6379'},{"host":'10.132.2

21.120',"port":'6379'},\

{"host":'10.132.221.121',"port":'6379'},{"host":'10.132.221.12

1',"port":'6380'},\

{"host":'10.132.221.123',"port":'6379'},{"host":'10.132.221.12

3',"port":'6380'}]

def createConnect():

conn = pymysql.connect(

host='****',

user='****', password='****',

database='****',

port=3306,

charset='utf8'

)

return conn

sql = '''select * from telecom'''

cursor = createConnect().cursor()

cursor.execute(sql)

res = cursor.fetchall()

rc = RedisCluster(startup_nodes=startup_nodes)

pipline = rc.pipeline()

cnt = 0

for one in res:

key = '****' #自己根据mysql的数据结构编造

value = '****'

pipline.set(key,value)

print('insert key={} value={}'.format(key,value))

cnt+=1

if cnt%10000==0:

cnt%=10000 #每积累一万条指令对redisserver进行一次请求

pipline.execute()

pipline.execute()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值