原创 【PHP】 phpredis 長連接實現原理

 前言;          多年以前有個大佬問過一個問題,PHP的phpredis第三方擴展(客戶端)怎麼實現與redis服務端維持長連接,並且每個請求是怎麼複用這些連接的,今天才突然想一探究竟,便翻了翻一下源碼。PHP源碼版本是php

原创 PHP Guzzle包 用法

總結: 1.GUZZLE包最終還是用的curl的curl_exec和curl_multi_exec去請求,可以添加自定義配置,這些配置最終還是會對應到 curl_setopt_array($easy->handle, $conf);

原创 nginx源碼分析 (信號機制)

這篇文章講解nginx的信號機制,因爲是信號,所以其他方面的沒有深究,放在後面分享出來,歡迎有興趣的朋友留言交流 nginx運行的進程模式爲master-worker的話,那master和worker進程間是通過信號來通信,關於信號相關的

原创 NGINX PHP-FPM 共享WINDOWS文件夾 開發環境

主要安裝過程中出現的問題: 1.執行PHP文件出現空白 nginx 默認配置文件中 ​fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; 改成 ​fastcgi_param SCRIPT

原创 git 撤銷 commit,並推送到遠程

reset與revert的區別 git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。 在回滾這一操作上看,效果差不多。但是在日後繼續merge以前的老版本時有區別。因爲gi

原创 nginx php 字節對齊

ngxin這種內存對其是爲了減少向內存或者CPU緩存讀取數據的時候,減少讀取的次數。 類似於讀取硬盤數據時,都是一頁一頁單位讀取的。 能夠保證一次性能夠讀取到完整的數據. #define ngx_align(d, a) (((d) + (

原创 Laravel Log 流程

Laravel 記錄日誌也是用了monolog/log ,只是在上面加了一層可配置和包裹了一層 測試代碼 Log::channel('zip')->info(' begin'); 對應日誌配置 'zip' => [ 'driv

原创 git rebase 還是 merge的使用場景最通俗的解釋

什麼是 rebase? git rebase 你其實可以把它理解成是“重新設置基線”,將你的當前分支重新設置開始點。這個時候才能知道你當前分支於你需要比較的分支之間的差異。 原理很簡單:rebase需要基於一個分支來設置你當前的分支的基線

原创 git同步遠程已刪除的分支和刪除本地多餘的分支

使用 git branch -a 可以查看本地分支和遠程分支情況  但遠程分支(紅色部分)刪除後,發現本地並沒有同步過來。   一. 同步本地的遠程分支 查看本地分支和追蹤情況: git remote show origin    

原创 Socket通信原理

Socket通信原理     對TCP/IP、UDP、Socket編程這些詞你不會很陌生吧?隨着網絡技術的發展,這些詞充斥着我們的耳朵。那麼我想問: 1.         什麼是TCP/IP、UDP? 2.         Socket在