Redis 安装与使用一、安装与配置1. 安装(1)Linux 源码安装1)准备工作安装依赖yum install -y gcc make wget gcc-c++ # 核心编译依赖,gcc 需 4.8+(Redis 6+ 要求)依赖于 gcc2)下载并解压wget https://github.c...
Redis 概述一、核心特性与版本更新1. 历史版本特性详情可参考 历史版本特性.md2. 重要版本升级特点5.0 到 6.0 为激进版本升级,其中 v6.0.7 存在重大 bug7.0 版本为重大特性更新,新增超过 50 个命令二、优缺点1. 优点(1)高性能基于内存操作,单线程模型避免线程切换开...
Golang 开发技巧与高级用法汇总本文汇总了 Golang 开发过程中高频实用的技巧及进阶高级用法,涵盖基础语法优化、并发编程、性能调优、反射与泛型、错误处理等核心领域,每个知识点均配套可直接运行的示例代码,并附加场景说明,帮助开发者提升编码效率、优化程序性能。一、基础语法进阶技巧1. 切片高效操...
Golang map 底层结构与原理深度解析Golang 中的 map(映射)是一种无序的键值对集合,用于快速存储和查找关联数据,其底层基于哈希表(Hash Table)实现,兼具高效的插入、删除和查询性能。与其他语言的 map 不同,Golang map 从设计上保证了并发安全的基础约束(禁止并发...
Golang Channel 底层结构与原理深度解析Golang 中的 Channel(通道)是实现 Goroutine 间通信与同步的核心机制,其设计遵循 CSP(Communicating Sequential Processes)并发模型,践行了 Go 语言“不要通过共享内存来通信,而要通过通...
Golang 中常用的字符串拼接方式对比一、字符串拼接方式下面按「使用频率+性能」排序,逐一讲解每种方式的用法、原理和适用场景,并附带完整代码示例。1. 直接使用 + 号拼接原理:Go 字符串不可变,每次+都会创建新字符串,复制原有内容到新内存空间。适用场景:仅适合少量、固定数量的字符串拼接(如2-...
Golang 反射Go 语言中的反射(Reflection)是一种在运行时动态检查(编译阶段不知道类型)、修改程序自身结构和行为的能力,主要通过 reflect 包实现。一、变量类型1. 静态类型编译时就能确定的类型,称为静态类型。2. 动态类型运行时才知道的类型,称为动态类型(例如,空接口)。二、...
Golang 内存管理一、内存分配1. 预申请内存的划分(1)spans存放 span 的指针,每个指针对应一个或多个 page。(2)bitmap通过 arena 计算得出,主要用于 GC(垃圾回收)。(3)arena(堆区)应用所需内存从这里分配。spans 和 bitmap 用于管理 aren...
Golang 并发控制一、临界资源临界资源是指并发环境中,多个进程、线程或协程共享的资源。在并发编程中,若对临界资源处理不当,往往会导致数据不一致的问题,即临界资源的安全问题。二、CSP 并发模型CSP(Communicating Sequential Processes)并发模型是 Go 语言的核...
Golang 通道(Channel)Channel 是 Go 语言提供的用于 goroutine 之间共享数据的机制,可在并发活动中实现 goroutine 间的资源或数据共享,其底层数据结构为环形队列 + 协程,能保证同步交换。一、通道类型1. 按是否有缓冲划分(1)无缓冲通道(Unbuffere...