原创 Laravel中自增實現方案

工作中經常會對一列數據進行自增操作,設想一個場景。總共發放10張優惠券(以下的操作以時間爲序列)1)用戶1請求領取1張優惠券;2)進程1查詢到數據庫中剩餘10張,代碼更新優惠券數量,此時爲內存中優惠券數量爲9;3)此時,用戶2請求領取1張優

原创 Swoole學習筆記(六):Hprose入門

1.什麼是RPCRPC是一種進程間的通訊方式,全稱是“遠程調用過程”。當客戶端向服務器發出請求時,並不是至直接發送給目標服務器,而是發送給RPC Server,由RPC Server進行調度。RPC提供與調用本地方法無差別的遠程調用方法。

原创 Swoole學習筆記(五):多協議多端口

swoole中,接受數據流處理時,需要將數據流切分成小包才能進行功能的實現,以下爲常見的幾個協議 1.EOF協議EOF協議是用一組固定的,不會出現在數據內的字符作爲數據分割的標記,簡稱EOF協議EOF協議的格式如下: DATA |

原创 Mysql採坑只utf8

當然,現在建數據庫時,大家一般都會使用utf8mb4,那爲什麼不適用utf8呢,其實是一個坑。mysql中的utf8只支持每個字符三個字節,而真正的UTF-8是每個字符最多四字節,這可以算數Mysql的一個bug。在mysql中,真正支持U

原创 Swoole學習筆記(四):WebSocketServer

1.WebSocket是什麼WebSocket是HTML5規範提出的一種協議,和HTTP協議是並存的兩種協議。 2.WebSocket與Socket的關係Socket其實並不是一個協議,而是爲了方便使用TCP或UDP而抽象出來的一層,是位於

原创 Swoole學習筆記(二):進程和事件IO

1.文件鎖子進程回覆制父進程的IO句柄,但是不能讓所有的子進程同時對同一個文件進行操作,所以需要文件鎖。 2.進程間的通訊方式--管道管道是一組(2個)特殊的描述符管道需要在fork函數調用前創建如果某一段主動關閉管道,另一端讀取操作會直接

原创 Swoole學習筆記(三):HttpServer

1.SW的HttpServerHttpServer的本質仍然是swoole_server,其協議加些部分固定使用Http協議解析,支持同步和異步2種模式完整的HTTP協議請求會被封裝在swoole_http_request對象內,所有HTT

原创 Swoole學習筆記(一):架構概述

swoole雖然是標準的PHP擴展,實際上與普通的擴展不同。普通的擴展只是提供一個庫函數。而swoole擴展在運行後會接管PHP的控制權,進入事件循環。在swoole中,有一個master進程(父進程)和多個worker進程(子進程),這個

原创 mysql執行計劃初步解讀1

Mysql的執行計劃算是一個平時接觸比較少的部分。慚愧,平時的sql優化都是直接看sql,然後一列一列條件的debug,並沒有一個科學的統計方法。抽空看了一些關於執行計劃的內容,感覺收穫頗豐。執行計劃格式首先我們先簡單看一下執行計劃是什麼東

原创 mysql執行計劃初步解讀2

繼續上次沒有寫完的執行計劃部分6.possible_keys可能使用到的索引,這個的理解呢, 表示查詢時可能使用的索引。只是可能用到,但是並不一定用到。如果是空的,表明肯定是沒有相關的索引。但是如果有值,也不一定能夠用到。7.key實際使用

原创 對Mysql數據庫sql執行的一點理解

本文簡單聊一下,我對Mysql是如何執行sql語句的一點理解。暫不涉及關於執行計劃的部分,關於執行計劃我會在後續的部分單獨再寫一些東西。 MySQL邏輯架構大家肯定都聽過這樣的話:“Mysql是插件式的存儲引擎”。那麼什麼是插件式的存儲引擎

原创 對Mysql數據庫sql執行的一點理解

本文簡單聊一下,我對Mysql是如何執行sql語句的一點理解。暫不涉及關於執行計劃的部分,關於執行計劃我會在後續的部分單獨再寫一些東西。 MySQL邏輯架構大家肯定都聽過這樣的話:“Mysql是插件式的存儲引擎”。那麼什麼是插件式的存儲引擎

原创 百度PHP面試經驗 2019

今天面試了百度,唉,業務寫太久了,太多基礎東西沒有答上來。算是一次寶貴的面試體驗吧,週末好好充下電,下週繼續去面試。廢話不說,直接來問題。 1.http與https有哪些不同?簡述https的工作原理。這個東西公衆號裏經常推送,但是很少有