博客 / 列表

Hunter - Redis數據結構一之對象的介紹及各版本對應實現

本文首發於公眾號:Hunter後端 原文鏈接:Redis數據結構一之對象的介紹及各版本對應實現 本篇筆記開始介紹 Redis 數據結構的底層實現。 當我們被問到 Redis 中有什麼數據結構,或者説數據類型,我們可能會説有字符串、列表、哈希、集合、有序集合。 其實這幾種數據類型在 Redis 中都由對象構成,而且是兩個對象,一個鍵對象,一個值對象。 在這些數據類型中,它們的鍵都是字符串

redis , 對象

Hunter - Golang基礎筆記九之方法與接口

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記九之方法與接口 本篇筆記介紹 Golang 裏方法和接口,以下是本篇筆記目錄: 方法 接口 用結構體實現類的功能 1、方法 首先介紹一下方法。 方法是與特定類型關聯的函數,我們在實現一個函數前,綁定一個類型,就實現了這個類型的方法。 比如我們想實現一個結構體的方法,可以如下操作: type Person struc

方法 , 接口 , 類型判斷 , go , 後端

Hunter - MySQL面試必備三之事務

本文首發於公眾號:Hunter後端 原文鏈接:MySQL面試必備三之事務 這一篇筆記介紹一下 MySQL 的事務,面試中常被問到關於事務的幾個問題如下: 事務是什麼 為什麼需要事務,事務有什麼作用 事務的特點 事務可能帶來哪些問題 事務有哪些隔離級別,這些隔離級別都可以解決哪些問題 可重複讀隔離級別下能否解決幻讀問題 如何解決幻讀問題 以下是本篇筆記目錄: 什麼是事務

幻讀 , MySQL , 數據庫 , 事務 , 後端

Hunter - MySQL面試必備一之索引

本文首發於公眾號:Hunter後端 原文鏈接:MySQL面試必備一之索引 在面試過程中,會有一些關於 MySQL 索引相關的問題,以下總結了一些: MySQL 的數據存儲使用的是什麼索引結構 B+ 樹的結構是什麼樣子 什麼是複合索引、聚簇索引、覆蓋索引 什麼是最左匹配原則 數據 B+ 樹中是如何查詢的 回表是什麼操作 B+ 樹的查詢有什麼優勢 索引下推是什麼意思 對於上

MySQL , 索引 , 面試 , 後端

Hunter - Python筆記四之協程

本文首發於公眾號:Hunter後端 原文鏈接:Python筆記四之協程 協程是一種運行在單線程下的併發編程模型,它的特點是能夠在一個線程內實現多個任務的併發操作,通過在執行任務時主動讓出執行權,讓其他任務繼續執行,從而實現併發。 以下所有的代碼都是在 Python 3.8 版本中運行。 本篇筆記目錄如下: asyncio async await 併發運行協程

協程 , 後端 , Python

Hunter - LeetCode熱題一之兩數之和

本文首發於公眾號:Hunter後端 原文鏈接:LeetCode熱題一之兩數之和 題目 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出和為目標值 target 的那兩個整數,並返回它們的數組下標。 你可以假設每種輸入只會對應一個答案,並且你不能使用兩次相同的元素。 你可以按任意順序返回答案。 題目來源 此題來源於 LeetCode 題庫序號 1。 L

leetcode , go , 後端 , Python

Hunter - Python筆記三之閉包與裝飾器

本文首發於公眾號:Hunter後端 原文鏈接:Python筆記三之閉包與裝飾器 這一篇筆記介紹 Python 裏面的裝飾器。 在介紹裝飾器前,首先提出這樣一個需求,我想統計某個函數的執行時間,假設這個函數如下: import time def add(x, y): time.sleep(1) return x + y 想要統計 add 函數的執行時間,可以如何操作,在一般

閉包 , 裝飾器 , 後端 , Python

Hunter - Golang基礎筆記八之函數

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記八之函數 本篇筆記介紹 Golang 裏函數相關的內容,以下是本篇筆記目錄: 函數的定義語法 函數返回值 可變參數函數 匿名函數 閉包 1、函數的定義語法 函數的定義格式如下: func 函數名(參數列表) (返回值列表) { 函數體 } 比如下面是一個兩數相加返回其和的函數: func add(a, b in

函數 , 閉包 , go , 後端

Hunter - Golang基礎筆記三之數組和切片

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記三之數組和切片 這一篇筆記介紹 Golang 裏的數組和切片,以下是本篇筆記目錄: 數組定義和初始化 數組屬性和相關操作 切片的創建 切片的長度和容量 切片的擴容 切片操作 1、數組定義與初始化 第一篇筆記的時候介紹過數組的定義與初始化,這裏再介紹一下。 數組是具有固定長度的相同類型元素的序列。 這裏有兩個點

數組 , slice , 擴容 , go

Hunter - Gin筆記二之gin.Engine和路由設置

本文首發於公眾號:Hunter後端 原文鏈接:Gin筆記二之gin.Engine和路由設置 這一篇筆記主要介紹 gin.Engine,設置路由等操作,以下是本篇筆記目錄: gin.Default() 和 gin.New() HTTP 方法 路由分組與中間件 1、gin.Default() 和 gin.New() 前面第一篇筆記介紹,創建一個 gin 的路由引擎使用的函數是 gin

gin , go , 後端

Hunter - Django筆記三十二之session登錄驗證操作

本文首發於本人微信公眾號:Hunter後端。 原文鏈接:Django筆記三十二之session登錄驗證操作 這一篇筆記將介紹 session 相關的內容,包括如何在系統中使用 session,以及利用 session 實現登錄認證的功能。 這篇筆記將分為以下幾個內容: session 的使用流程 session 的配置和相關方法 users 模塊的準備 session 驗證的的實

登錄 , MySQL , django , Python , session

Hunter - Gin筆記一之項目建立與運行

本文首發於公眾號:Hunter後端 原文鏈接:Gin筆記一之項目建立與運行 本篇筆記開始介紹 Golang 的 web 框架 Gin 的相關內容。 本系列筆記預計通過四到五篇筆記內容介紹 Gin 框架的核心內容,然後通過一個簡單的示例介紹一個 Gin 項目的目錄結構,然後介紹如何將一個 Gin 項目使用 Docker 打包部署。 此外,還將介紹在 Gin 項目裏連接使用 Redis、Mon

gin , go , 後端

Hunter - Golang基礎筆記十五之sync

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記十五之sync 這一篇筆記介紹 Golang 中的 sync 模塊。 sync 包主要提供了基礎的同步原語,比如互斥鎖,讀寫鎖,等待組等,用於解決併發編程中的線程安全問題,以下是本篇筆記目錄: WaitGroup-等待組 sync.Mutex-互斥鎖 sync.RWMutex-讀寫鎖 sync.Once-一次性執行

, sync , 對象池 , go , 後端

Hunter - Golang基礎筆記十之goroutine和channel

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記十之goroutine和channel 這一篇介紹 Golang 裏的 goroutine 和 channel 通道。 以下是本篇筆記目錄: goroutine channel goroutine 與 channel 的使用 1、goroutine goroutine 是一種輕量級線程(用户態線程),由 Go 運行

goroutine , channel , go , 後端

Hunter - Golang基礎筆記七之指針,值類型和引用類型

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記七之指針,值類型和引用類型 本篇筆記介紹 Golang 裏的指針,值類型與引用類型相關的概念,以下是本篇筆記目錄: 指針 值類型與引用類型 內存逃逸 減少內存逃逸的幾種方案 1、指針 在計算機內存中,每個變量都存儲在特定的內存地址上,而指針是一種特殊的變量,它存儲的是一個變量的內存地址。 我們可以通過指針訪問變量

引用 , 指針 , go , 後端

Hunter - Golang基礎筆記六之流程控制

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記六之流程控制 本篇筆記介紹 Golang 裏流程控制相關的一些語法,以下是本篇筆記目錄: 條件語句 循環語句 1、條件語句 1. if-else 語句 if-else 語句的基本語法如下: if condition { }else if condition { }else { } 下面是一個示例: num := 10

switch語句 , for循環 , go , 後端

Hunter - Golang基礎筆記四之map

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記四之map 這一篇筆記介紹 Golang 裏 map 相關的內容,以下是本篇筆記目錄: map 的概念及其聲明與初始化 map 的增刪改查 map 的遍歷 1、map 的概念及其聲明與初始化 map,即映射,是 Golang 裏無序鍵值對的集合。 以下是創建 map 的兩種方式。 1. 使用 make 的方式創建

map , go , 後端

Hunter - Golang基礎筆記二之字符串及其操作

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記二之字符串及其操作 這一篇筆記主要介紹 Golang 字符串相關處理,以下是本篇筆記目錄: 字符串的定義和初始化 字符 字符串操作 1、字符串的定義和初始化 在 Go 裏,我們可以使用雙引號和反引號來對定義字符串。 1. 雙引號 雙引號用於創建解釋型字符串字面量,這種字符串是支持轉義字符的,比如我們在字符串中夾帶換

字符串 , 字符串處理 , go

Hunter - Golang基礎筆記一之變量聲明和類型介紹

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記一之變量聲明和類型介紹 這一篇筆記主要介紹 Golang 的基礎內容,包括 Golang 的運行,變量聲明以及 Golang 裏的各種數據類型。 以下是本篇筆記目錄: Golang 的運行 變量聲明 Golang 數據類型 fmt 函數 1、Golang 的運行 在介紹後面的函數前,我們所有的代碼都放在 main

fmt , 教程 , 變量 , go

Hunter - Python面試必備二之 lambda 表達式、函數傳參 args 和 kwargs、垃圾回收機制和上下文管理器

本文首發於公眾號:Hunter後端 原文鏈接:Python面試必備二之 lambda 表達式、函數傳參 args 和 kwargs、垃圾回收機制和上下文管理器 本篇筆記主要介紹 Python 面試過程中關於 Lambda 表達式、函數傳參、垃圾回收機制等問題,大致如下: Python 中 Lambda 表達式是什麼,有什麼用 函數的參數 args 怎麼用,kwargs 怎麼用 Py

面試 , lambda , 垃圾回收 , 後端 , Python

Hunter - Python筆記六之多進程

本文首發於公眾號:Hunter後端 原文鏈接:Python筆記六之多進程 在 Python 裏,我們使用 multiprocessing 這個模塊來進行多進程的操作。 multiprocessing 模塊通過創建子進程的方式來運行多進程,因此繞過了 Python 裏 GIL 的限制,可以充分利用機器上的多個處理器。 1、多進程使用示例 多進程的使用方式和多線程的方式類似,這裏使用到的是 m

多進程 , 後端 , Python

Hunter - Flask筆記四之異常處理

本文首發於公眾號:Hunter後端 原文鏈接:Flask筆記四之異常處理 在系統運行中,有時候需要處理報錯異常。 異常的來源可能是系統在運行中的報錯,比如錯誤的運算的有 1/0 這種等,還有的是訪問了不存在接口,又或者,我們在查驗接口參數的時候,發現沒有傳必傳參數,需要手動觸發一個報錯等。 這裏就介紹如何在 Flask 中進行異常處理。 本篇筆記的代碼都已經提交到 github 上,可使用

flask , 異常處理 , 後端 , Python

Hunter - SQLAlchemy 連接使用數據庫

本文首發於公眾號:Hunter後端 原文鏈接:SQLAlchemy 連接使用數據庫 相對於 Django 來説,Flask 並沒有 Django 中自帶的那種 ORM 框架,但是我們可以利用第三方的 ORM 框架來進行操作,比如我們這裏介紹的 SQLAlchemy。 接下來這一篇筆記將會介紹如何使用 SQLAlchemy 連接數據庫、建立模型、操作表、以及查詢操作表數據等內容。 以下是本篇

sqlalchemy , flask , Python

Hunter - Redis數據結構二之SDS和雙向鏈表

本文首發於公眾號:Hunter後端 原文鏈接:Redis數據結構二之SDS和雙向鏈表 這一篇筆記介紹一下 SDS(simple dynamic string)和雙向鏈表。 以下是本篇筆記目錄: SDS 常數複雜度獲取字符串長度 杜絕緩衝區溢出 減少修改字符串帶來的內存重分配次數 二進制安全 兼容C字符串函數 雙向鏈表 1、 S

redis , 鏈表 , 後端