python 基礎面試題理論

1、python的__dict__的作用,平常怎麼使用?

查看對象的屬性,元類編程的時候有用。一般不自己寫庫基本上不會用到元類編程,__dict__的相對用途就小很多。

2、緩存穿透、緩存擊穿、緩存雪崩瞭解麼?簡述下

緩存穿透
在高併發下,查詢一個不存在的值時,緩存不會被命中,導致大量請求直接落到數據庫上,如活動系統裏面查詢一個不存在的活動。
緩存擊穿
在高併發下,對一個特定的值進行查詢,但是這個時候緩存正好過期了,緩存沒有命中,導致大量請求直接落到數據庫上,如活動系統裏面查詢活動信息,但是在活動進行過程中活動緩存突然過期了。
緩存雪崩
在高併發下,大量的緩存key在同一時間失效,導致大量的請求落到數據庫上,如活動系統裏面同時進行着非常多的活動,但是在某個時間點所有的活動緩存全部過期。

3、瞭解mysql索引麼?幹什麼用的?

索引(書籤)可以大大提高MySQL的檢索速度。
需要確保該索引是應用在 SQL 查詢語句的條件(一般作爲 WHERE 子句的條件)。
實際上,索引也是一張表,該表保存了主鍵與索引字段,並指向實體表的記錄。
它的缺點:雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對錶進行INSERT、UPDATE和DELETE。因爲更新表時,MySQL不僅要保存數據,還要保存一下索引文件。

4、常用的Linux命令

查詢內存的命令:top
終止進程: kill -signal PID
查詢動態log:tail -f

5、瞭解http協議嗎?怎麼解決Http協議無狀態協議?

http協議和tcp/ip協議族內的其他衆多的協議相同,用於客戶端和服務器間通訊。
HTTP協議的特點

  • 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、PUT、DELETE、POST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
  • 靈活:HTTP允許傳輸任意類型的數據對象。
  • 無連接:限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
    可見,HTTP不是字面意義上的沒有連接,事實上,這個定義也符合HTTP短連接的定義,但無連接強調的是HTTP的特性,短連接可理解爲一種實現。
  • 無狀態:HTTP協議是無狀態的,HTTP 協議自身不對請求和響應之間的通信狀態進行保存。任何兩次請求之間都沒有依賴關係。直觀地說,就是每個請求都是獨立的,與前面的請求和後面的請求都是沒有直接聯繫的。協議本身並不保留之前一切的請求或響應報文的信息。這是爲了更快地處理大量事務,確保協議的可伸縮性,而特意把 HTTP 協議設計成如此簡單的。

相對於特性3:HTTP 的設計者有意利用這種特點將協議設計爲請求時建連接、請求完釋放連接,以儘快將資源釋放出來服務其他客戶端。引入Keep-Alive模式後,Keep-Alive功能使客戶端到服務器端的連接持續有效,當出現對服務器的後繼請求時,Keep-Alive功能避免了建立或者重新建立連接。
相對於特性4:http協議是無狀態的,無狀態協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息
無狀態協議解決辦法: 通過1、Cookie 2、通過Session會話保存。

6、簡述cookie和session的區別

1 .存取方式的不同
2 .隱私策略的不同
3.有效期上的不同
4.服務器壓力的不同
5 .瀏覽器支持的不同
6.跨域支持上的不同
(具體自己補充吧)

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