ts和nts的區別 (redis中碰到)


【TS指Thread Safet y線程安全  NTS即None-Thread Safe 非線程安全】

區別:【TS   NTS】

TS指Thread Safety,即線程安全,一般在IIS以ISAPI方式加載的時候選擇這個版本(window+apche+php+mysql+redis[ts])。

NTS即None-Thread Safe,一般以fast cgi方式運行的時候選擇這個版本,具有更好的性能

解釋:【nts  ISAPI   cgi  fast cgi】

  nts(None-Thread Safe)即非線程安全,就是不提供數據訪問保護,有可能出現多個線程先后更改數據造成所得到的是 臟數據php以fast cgi方式運行的時候選擇這個版本,具有更好的性能;

  ISAPI(Internet Server Application Programming Interface), 通常是指被http服務器所加載,以服務器的模塊形式運行,由微 軟提出,故只能在win平台上運行,例如win下的apache,iis[據說用fast cgi 方式工作更穩定],而Linux上php 則以 Apache模塊或者php-fpm的方式運行。

  cgi(Common Gateway Interface):HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,說白了,cig就是一種 后台語言,其可以和服務器之間進行通訊。此時的php是作為一個獨立的程序運行的。特點就是耗費內存。

  fast cgi.是一個常駐(long-live)型的CGI,它可以一直執行着,只要激活后,不會每次都要花費時間去fork.這種方式 是與語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中並因此獲得較 高的性能

了解:

  從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由於與Linux/Unix系統是采用多進程的工作方式不同的是Windows系統是采用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由於CGI模式是建立在多進程的基礎之上的,而非多線程。一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在高爾夫娛樂場一個問題,很多常用的PHP擴展是以Linux/Unix的多進程思想來開發的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。因此在IIS下CGI模式才是 PHP運行的最安全方式,但CGI模式對於每個HTTP請求都需要重新加載和卸載整個PHP環境,其消耗是巨大的。

  為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重復利用而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優勢。

  因此,如果是使用ISAPI的方式來運行PHP就必須用Thread Safe(線程安全)的版本;

  而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。

                                                                    【感謝糾錯】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM