pymysql redis 多線程 多進程

 1.pymysql

import pymysql

conn = pymysql.connect(host='192.168.20.111',
                                port=3306,
                                user='root',
                                password='123456',
                                db='mydb',
                                charset='utf8',)

cur = conn.cursor()

###########增改刪##############
sqls = "insert into *****"
cur.execute(sqls)
conn.commit()
cur.close()

###############查##############
sqls = "insert into *****"
cur.execute(sqls)
data = cur.fetchall()
cur.close()

###############撤回操作##########
try:
    #數據庫操作1
    #數據庫操作2
    #....
except:
    conn.rollback()
else:
    conn.commit()

###########獲取剛插入數據的id############
sqls = "insert into *****"
cur.execute(sqls)
conn.commit()
id = conn.insert_id()

 

2.多進程共享數據

from multiprocessing import Process
from multiprocessing import Manager  #進程數據管理
 
 
 
def f1(i,dic):
    dic[i] = 200+i
    print(dic.values())
 
if __name__ =='__main__':#進程間默認不能共用內存
    manager = Manager()
    dic = manager.dict()#這是一個特殊的字典(manager創建字典)
 
 
    for i in range(10):
        p = Process(target=f1,args=(i,dic))  #進程共享字典的內存
        p.start()
        p.join()   #回收進程

3.redis

import redis
r = redis.Redis(host='192.168.32.111', port=6379, db=2)
data_get = r.lrange('weibo:info', 0, -1) #取數據,redis仍然保存數據,rrange
data_pop = r.lpop('weibo:info')  #冒泡取數據,rpop

info_data = "********"
r.lpush('weibo:info', info_data)  #寫入數據,rpush

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章