Logo

Redis 安装与使用

Redis 安装与使用一、安装与配置1. 安装(1)Linux 源码安装1)准备工作安装依赖yum install -y gcc make wget gcc-c++ # 核心编译依赖,gcc 需 4.8+(Redis 6+ 要求)依赖于 gcc2)下载并解压wget https://github.c...

Redis 概述

Redis 概述一、核心特性与版本更新1. 历史版本特性详情可参考 历史版本特性.md2. 重要版本升级特点5.0 到 6.0 为激进版本升级,其中 v6.0.7 存在重大 bug7.0 版本为重大特性更新,新增超过 50 个命令二、优缺点1. 优点(1)高性能基于内存操作,单线程模型避免线程切换开...

Golang 开发技巧与高级用法汇总

Golang 开发技巧与高级用法汇总本文汇总了 Golang 开发过程中高频实用的技巧及进阶高级用法,涵盖基础语法优化、并发编程、性能调优、反射与泛型、错误处理等核心领域,每个知识点均配套可直接运行的示例代码,并附加场景说明,帮助开发者提升编码效率、优化程序性能。一、基础语法进阶技巧1. 切片高效操...

Golang map 底层结构与原理深度解析

Golang map 底层结构与原理深度解析Golang 中的 map(映射)是一种无序的键值对集合,用于快速存储和查找关联数据,其底层基于哈希表(Hash Table)实现,兼具高效的插入、删除和查询性能。与其他语言的 map 不同,Golang map 从设计上保证了并发安全的基础约束(禁止并发...

Golang Channel 底层结构与原理深度解析

Golang Channel 底层结构与原理深度解析Golang 中的 Channel(通道)是实现 Goroutine 间通信与同步的核心机制,其设计遵循 CSP(Communicating Sequential Processes)并发模型,践行了 Go 语言“不要通过共享内存来通信,而要通过通...

Golang 中常用的字符串拼接方式对比

Golang 中常用的字符串拼接方式对比一、字符串拼接方式下面按「使用频率+性能」排序,逐一讲解每种方式的用法、原理和适用场景,并附带完整代码示例。1. 直接使用 + 号拼接原理:Go 字符串不可变,每次+都会创建新字符串,复制原有内容到新内存空间。适用场景:仅适合少量、固定数量的字符串拼接(如2-...

Golang 反射

Golang 反射Go 语言中的反射(Reflection)是一种在运行时动态检查(编译阶段不知道类型)、修改程序自身结构和行为的能力,主要通过 reflect 包实现。一、变量类型1. 静态类型编译时就能确定的类型,称为静态类型。2. 动态类型运行时才知道的类型,称为动态类型(例如,空接口)。二、...

Golang 内存管理

Golang 内存管理一、内存分配1. 预申请内存的划分(1)spans存放 span 的指针,每个指针对应一个或多个 page。(2)bitmap通过 arena 计算得出,主要用于 GC(垃圾回收)。(3)arena(堆区)应用所需内存从这里分配。spans 和 bitmap 用于管理 aren...

Golang 并发控制

Golang 并发控制一、临界资源临界资源是指并发环境中,多个进程、线程或协程共享的资源。在并发编程中,若对临界资源处理不当,往往会导致数据不一致的问题,即临界资源的安全问题。二、CSP 并发模型CSP(Communicating Sequential Processes)并发模型是 Go 语言的核...

Golang 通道(Channel)

Golang 通道(Channel)Channel 是 Go 语言提供的用于 goroutine 之间共享数据的机制,可在并发活动中实现 goroutine 间的资源或数据共享,其底层数据结构为环形队列 + 协程,能保证同步交换。一、通道类型1. 按是否有缓冲划分(1)无缓冲通道(Unbuffere...