1、rabbitmq(訊息佇列)
python中,threading queue:限制於不同執行緒之間的資料同步互動;
python中,程序 queue:限制于父程序與子程序進行互動,或者同屬於同一父程序下的多個子程序進行互動;
rabbitmq是基於erlang語言的;
安裝pika:pip install pika;
生產者:
import pika
connection = pika.blockingconnection(pika.connectionparameters("localhost"))
channel = connection.channel() #宣告乙個管道
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',routing_key='hello',body='hello word')
print("[x] send 'hello world!'")
connection.close()
消費者:
import pika
connection = pika.blockingconnection(pika.connectionparameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch,method,properties,body):
print("--->",ch,method,properties)
channel.basic_consume(callback,queue='hello',no_ack=true) #no_ack=true表示無須發確認
channel.start_consuming()
輪詢機制:把訊息依次公平的發給每個消費者;
生產者如何確認消費者任務是處理完的,需要消費者告訴其任務是否處理完,no_ack=true表示無須發確認;只要客戶端沒確認,生產者則不會將該條資料刪除;
rabbitmq下sbin目錄下,通過命令:rabbitmqctl.bat list_queues檢視有多少個queue及多少條訊息;
rabbitmq持久化:channel.queue_declare(queue='hello',durable=true);客戶端和伺服器端都要填寫,防止資料丟失;持久化只是針對對列,而非佇列裡的資料持久化,若想訊息持久化:在生產者端更改為如下**:
channel.basic_publish(exchange='',routing_key='hello',body='hello word',properties=pika.basicproperties(delivery_mode=2))
廣播型別:fanout、directe和topic;
2、redis
單執行緒的key-value儲存系統,其最高讀寫速度8萬和10萬;埠號預設6379;
連線redis:redis-cli;
python中如何操作redis:
import redis
r=redis.redis(host='10.211.55.4',port=6379)
r.set('foo','bar')
print(r.get('foo'))
redis-py使用connection pool來管理對乙個redis server的所有連線,避免每次建立、釋放連線的開銷。預設每個redis例項都會維護乙個自己的連線池。可以直接建立乙個連線池,然後作為引數redis,這樣就可以是實現多個redis例項共享乙個連線池;
import redis
pool = redis.connectionpool(host='10.201.*.*',port=6379)
r=redis.redis(connction_pool=pool)
r.set('foo','bar')
print(r.get('foo'))
3、程序
4、協成
5、執行緒
6、堡壘機
8月6日 python知識點總結
def funcname 函式名稱 有冒號就縮排乙個tab renturn 例題1 輸入乙個數字,返回這個數字的平方 在python中所有的函式都有返回值,如果你沒有給與return則預設返回none,如果給與則返回你給與的值。例題2 重新整理進度條 正常列印的時候,速度特別快,不容易清楚的看到精度...
2012 5 12日學習總結
上午主要學習物件導向程式設計 1 物件導向的基本概念 物件,類,繼承 2 乙個空類預設產出哪些成員函式 建構函式,析構函式,拷貝建構函式,賦值函式 3 struct 和class有哪些區別 struct 和class基本相同,只是struct預設所有成員為public而class成語預設為priva...
15日的總結
昨天程式設計比賽慘痛的經歷,1題都沒有寫出來,有幾個地方值得檢討的,1 首先是我把時間給記錯了,早上還在睡覺的時候被提醒沒洗臉直接去參加比賽,全程慌慌張張的,心理素質從小就不好。i 如果當成大數相加 要處理大數求模。ii 不當成大數相加時,什麼型別可以保證在測試資料下不溢位?long int64?a...