2019 06 24日知識總結

2021-09-24 17:21:36 字數 2226 閱讀 9997

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...