golang 在 Go 1.18中提供了泛型特性,相信很多goper小伙伴的躍躍欲試想要嘗鮮了,但是安裝新版本golang的同時(shí)又希望保留老的版本,以免影響現(xiàn)有的穩(wěn)定代碼倉庫...
golang 在 Go 1.18中提供了泛型特性,相信很多goper小伙伴的躍躍欲試想要嘗鮮了,但是安裝新版本golang的同時(shí)又希望保留老的版本,以免影響現(xiàn)有的穩(wěn)定代碼倉庫...
Go commons pool介紹 如果你需要開發(fā)一個(gè)連接池,用于實(shí)現(xiàn)連接對(duì)象的重復(fù)使用,從而避免頻繁的創(chuàng)建和銷毀連接,造成響應(yīng)的延時(shí)。那么你完全可以基于Go commons...
最近需要實(shí)現(xiàn)一個(gè)功能,查找車輛附近的加油站,如果車和加油站距離在200米以內(nèi),則查找成功。 加油站數(shù)量肯定不小,能否縮小查找范圍,否則以遍歷形式,效率肯定高不了。 Geoha...
之前在維護(hù) ETCD 集群時(shí),發(fā)現(xiàn)ETCD有時(shí)會(huì)意外崩潰,在定位到具體問題之前,為了保證集群可用,開發(fā)了一個(gè)簡單的服務(wù)?;钅_本,主要流程是如下:每分鐘檢查一下服務(wù)是否存在,如...
1、redigo客戶端的返回值解析 從上一節(jié)的內(nèi)容可知,Do() 和 Receive() 等方法的返回值,除了 error 外,是一個(gè) interface{} 類型的返回值,...
1、golang語言Redis客戶端簡介 通常我們在選擇某一組件的客戶端包時(shí),優(yōu)先選擇官方提供的包。redis 本身雖然并沒有提供 go 語言的 client 包,但是提供了...
在一次開發(fā)過程中,想要將程序運(yùn)行環(huán)境的變量作為緩存的key值作為區(qū)分,因此在聲明全局變量時(shí)使用了其他變量賦值。通過如下測試代碼簡化具體邏輯。 當(dāng)我們執(zhí)行測試程序時(shí),詭異的事情...
數(shù)組是由相同類型元素的集合組成的數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)會(huì)為數(shù)組分配一塊連續(xù)的內(nèi)存來保存其中的元素,我們可以利用數(shù)組中元素的索引快速訪問特定元素。goalng中的數(shù)組在定義時(shí)必須指定...
在golang slice擴(kuò)容方法中有一種判斷一個(gè)整數(shù)數(shù)值是否為2的整數(shù)次冪的方法。通過位運(yùn)算的方式,具有極高的效率。具體如下: 通過分析我們發(fā)現(xiàn)一個(gè)滿足2n的整數(shù)的二進(jìn)制都...
幾種常用內(nèi)容類型(Content-Type)的http客戶端開發(fā)實(shí)例 在開發(fā)過程中,通常會(huì)遇到與其他服務(wù)做信息交換的情況,大多數(shù)情況下會(huì)通過http接口實(shí)現(xiàn)信息的交換。但是不...
mysql中json數(shù)據(jù)類型的使用及底層實(shí)現(xiàn)邏輯(源碼解析) 一、mysql中json對(duì)象的操作 mysql 從5.7版本開始增加了對(duì)json數(shù)據(jù)類型的支持。此前,用戶通常將...
golang 單元測試、基準(zhǔn)測試、子測試、并發(fā)測試基礎(chǔ)教程 一、go test基礎(chǔ) 用法: go test [build/test flags] [packages] [bu...
在一次需求開發(fā)過程中,需要在服務(wù)B中將服務(wù)A產(chǎn)生的一部分?jǐn)?shù)據(jù)透傳給用戶,這部分?jǐn)?shù)據(jù)結(jié)構(gòu)由服務(wù)A和用戶決定,服務(wù)B只負(fù)責(zé)透傳,但是這部分?jǐn)?shù)據(jù)需要被封裝在結(jié)構(gòu)體Msg中透傳哥給用...
1、背景介紹 受限于mysql客戶端的傳輸限制及實(shí)際處理數(shù)據(jù)的需求,在處理大表數(shù)據(jù)時(shí)我們通常會(huì)使用分頁操作。但是在某次分頁查詢過程中卻發(fā)現(xiàn)了一個(gè)有趣的問題。 某次我們計(jì)劃將一...
1、背景介紹 在某次執(zhí)行sql數(shù)據(jù)插入過程中出現(xiàn)了如下錯(cuò)誤: 通過查閱資料發(fā)現(xiàn),該問題是由于mysql數(shù)據(jù)編碼問題導(dǎo)致的。這就不得不提到mysql最被人們廣為詬病的問題:my...
1、 背景介紹 Set是一種基本的數(shù)據(jù)結(jié)構(gòu),它具備確定性、互異性、無序性三個(gè)特點(diǎn)。因此,在開發(fā)過程中我們通常用它來判斷一些數(shù)據(jù)的集合與另一個(gè)數(shù)據(jù)集合或者元素的包含關(guān)系。在大部...
事情發(fā)生在公元2021年2月份,石同學(xué)接到了一個(gè)開發(fā)任務(wù),考慮不到本章主要介紹golang-set相關(guān)的問題,因此開發(fā)任務(wù)簡單理解為:開發(fā)一個(gè)條件過濾器,用于判斷某一件商品的...
本文通過一次mysql packet for query is too large問題的排查經(jīng)歷,從go-mysql-driver源碼層面解析問題出現(xiàn)的原因及解決方案,進(jìn)而引...