原创 MySQL的鎖機制 - 記錄鎖、間隙鎖、臨鍵鎖 - 咖啡屋小羅的文章 - 知乎 https://zhuanlan.zhihu.com/p/48269420

記錄鎖(Record Locks) 記錄鎖是 封鎖記錄,記錄鎖也叫行鎖,例如: SELECT * FROM test WHERE id=1 FOR UPDATE; 它會在 id=1 的記錄上加上記錄鎖,以阻止其他事務插入,更新,刪除 id=

原创 in_array的坑

PHP in_array的坑 ps: 應該是弱類型語言的坑 php文檔 顧名思義,in_array就是查找一個值是否在數組裏面。 問題 事故現場 一個sql注入的測試代碼如下: $type = $_GET['type']; $types =

原创 redis雜項

主要介紹雜項命令的使用 主要來源 redis doc config get/set CONFIG GET 命令用於取得運行中的 Redis 服務器的配置參數(configuration parameters),在 Redis 2.4 版

原创 如何重寫laravel自帶的auth 原 薦

本文Laravel版本爲5.5 laravel中的實現方式 laravel自帶了完整的auth方案,可以參照文章laravel的應用。我這裏實現舉出幾個重要的步驟: //生成代碼 php artisan make:aut

原创 golang gc優化總結 原

go語言的GC 使用的內存回收機制 go語言垃圾回收總體採用的是經典的mark and sweep(標記-清除)算法。 該算法法分爲兩步: 標記從根變量開始迭代得遍歷所有被引用的對象,對能夠通過應用遍歷訪問到的對象都進行標記爲“被引用”;

原创 十大經典排序算法(動圖演示)轉 轉

0、算法概述 0.1 算法分類 十種常見排序算法可以分爲兩大類: 非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破O(nlogn),因此稱爲非線性時間比較類排序。 線性時間非比較類排序:不通過比較來決定

原创 Go實現FastCgi Proxy Client 系列(四) keep-alive實現 原 薦

先貼幾個鏈接 前三篇 Go實現FastCgi Proxy Client 系列(三) Go實現FastCgi Proxy Client 系列(二) Go實現FastCgi Proxy Client 系列(一) 靈感帖 TCP keepaliv

原创 如何用golang實現一個定時器任務隊列 原 薦

golang中定時器 golang中提供了2種定時器timer和ticker(如果JS很熟悉的話應該會很瞭解),分別是一次性定時器和重複任務定時器。 一般用法: func main() { input := make(chan

原创 JAVA內存分配總結 原

Java程序具體執行的過程 如上圖所示,首先Java源代碼文件(.java後綴)會被Java編譯器編譯爲字節碼文件(.class後綴),然後由JVM中的類加載器加載各個類的字節碼文件,加載完畢之後,交由JVM執行引擎執行。在整個程序執行過

原创 redis性能優化(pipeline/lua) 原

redis優化 最近在做S線的業務中,需要計算用戶的排名以及很多雜項數據。由於數據量過多,爲了保證系統響應速度和負載能力,所以在Redis中產生了緩存(基於每天)。 pipe line 介紹 Redis的pipeline(管道)功能在命令行

原创 mysql分區譯文(第一章) 原

原文地址 請注意 mysql通用的分區程序已被棄用了(5.7.17),並且將會在mysql8中完全移除。 當你爲表提供自定義的(本地的)分區方法時,請修改表的驅動(只支持INNODB和NDB ) 使用非本地的分區方法時,將會導致一個 ER

原创 Go實現FastCgi Proxy Client 系列(一) 原 薦

什麼是FastCgi 再瞭解FastCgi之前,我們一定要先知道,什麼叫Cgi。 CGI全稱是“通用網關接口”(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序一般運

原创 本文主要總結在微博關於mysql的優化(將會持續更新) 原

ON DUPLICATE KEY UPDATE 事件背景 在閱讀公司原來代碼的過程中,我發現了這樣一段代碼: $sql = "INSERT INTO {$table} ({$fields}) VALUES " . $values; if (

原创 Go實現FastCgi Proxy Client 系列(三)優化篇 原 薦

墨跡一點 個人瑣碎 最近比較忙,以致於很久都沒有寫blog了,但是,golang的水平自認爲是總算入門了。 協程的個人理解 網上的說法一般都是協程是輕量級線程。 我個人認爲協程的好處 小 無需在用戶態和內核態切換(完全在用戶態) 無需線程

原创 redis緩存事故記錄(持續更新) 原

善於總結,才能更快進步 通常,我們對高併發的數據都會進行緩存,而且爲了防止緩存過大,通常我們都會把緩存設置一個超時時間,並且會有cache miss機制。本文,我記錄一下錯誤的緩存機制引起的BUG。 案例1 起因 好好的一個國慶,自己完