原创 Go基礎數據結構學習——string

Go基礎數據結構學習——string string在Go語言內存模型中用一個2字長的數據結構表示,一個是指向字符串存儲的數據的指針,另一個爲長度數據。 type stringStruct struct { str unsaf

原创 小程序使用小白接口上傳圖片方法2

小白接口官網:https://www.yesapi.cn/ 1. 使用的小白接口:App.CDN.UploadImgByBase64 鏈接:http://api.okayapi.com/?s=App.CDN.UploadImgB

原创 PHP7底層設計與源碼——數組的實現

基本概念 PHP中數組是個強大的數據結構,堪稱一絕,數組、關聯數組一網打盡,既可以是連續的數組也可以是存儲key=>value映射的map。 PHP使用HashTable來存儲鍵-值對,但是又對HashTable進行了一些額外的

原创 Redis隊列——消息隊列,延遲隊列

異步消息隊列 使用的數據結構: list 主要實現: go實現簡單消息隊列 package main import ( "encoding/json" "fmt" "github.com/gomodule/redig

原创 Redis——分佈式鎖

什麼是分佈式鎖 分佈式鎖: 進行邏輯處理時經常會遇到併發問題。可以藉助redis來實現分佈式鎖,簡單來說就是限制兩個操作不同時進行,每次執行某個操作的時候用setnx()加鎖,當沒被鎖再執行下一個操作.限制程序的併發執行! 一般

原创 Redis小知識

Redis是啥 redis: Remote Dictionary Service遠程字典服務 Redis的端口爲什麼是6379? 這個端口號也不 是隨機選的,而是由手機鍵盤字母MERZ的位置決定的。MERZ在 Antirez(Re

原创 各種鎖系列

各種鎖系列 平時我們在開發或學習中,數據庫中,某個編程語言中經常會聽到各種鎖,主要用來對資源併發過程做一些限制,接下來對各種鎖進行一個總結與學習! 樂觀鎖與悲觀鎖 首先,樂觀鎖與悲觀鎖並不是指具體的某種東西,而是一種設計的思路

原创 MySQL必知知識

數據庫 1.MyISAM引擎不支持事務和行級鎖 2.MyISAM的特性 加鎖與併發:MyISAM是對整張表加鎖,而不是某一行。 讀取時對需要讀到的所有表加共享鎖 寫入時對錶加排他鎖 3.InnoDB(5.5版本後爲默認引擎)

原创 Redis——漏斗限流

漏斗限流模塊——redis-cell 安裝: 同樣使用docker安裝 // 拉取鏡像 docker pull hsz1273327/redis-cell:latest // 後臺運行,映射本地6381端口 docker ru

原创 Redis——布隆過濾器

安裝使用 rebloom作爲插件安裝 centos安裝rebloom docker安裝: // 拉取鏡像 docker pull redislabs/rebloom // 後臺運行,映射到本地6380端口 docker r

原创 go協程控制——context

context 爲什麼有context 首先,如果我們在併發程序中,如果需要我們去通知子協程結束我們會怎麼做? 我們可能會通過一個channel+select去通知,如下: package main import (

原创 Go基礎數據結構學習——slice

Go基礎數據結構學習——slice slice Slice切片:是一個數組某部分的引用,在內存中是一個包含三個域的結構體,第一個是指向數據的第一個元素的指針,第二個是切片的長度,第三個是切片的容量 type slice str

原创 Go基礎數據結構學習

Go基礎數據結構學習——string string在Go語言內存模型中用一個2字長的數據結構表示,一個是指向字符串存儲的數據的指針,另一個爲長度數據。 type stringStruct struct { str unsaf

原创 go的*鎖*包——sync

go的鎖包——sync 上一篇文章介紹了各種鎖的基本概念,這篇文章主要學習一下Go的標準庫sync包,提供了基本的同步基元. 要注意的是,sync除了Once和WaitGroup類型,大部分都是適用於低水平程序線程,高水平的同步

原创 雙端隊列——Letcode622. Design Circular Queue

1.題目 設計你的循環隊列實現。 循環隊列是一種線性數據結構,其操作表現基於 FIFO(先進先出)原則並且隊尾被連接在隊首之後以形成一個循環。它也被稱爲“環形緩衝器”。 循環隊列的一個好處是我們可以利用這個隊列之前用過的空間。在一