文章 · 第 11 页

5 分钟

动手写分布式缓存 - GeeCache第四天 一致性哈希(hash)

7天用 Go语言/golang 从零实现分布式缓存 GeeCache 教程(7 days implement golang distributed cache from scratch tutorial),动手写分布式缓存,参照 groupcache 的实现。本文介绍了一致性哈希(consistent hashing)的原理、实现以及相关测试用例,一致性哈希为什么能避免缓存雪崩,虚拟节点为什么能解决数据倾斜的问题。

4 分钟

Go Mock (gomock)简明教程

gomock 是Go语言/golang 官方提供的mock库,用于在单元测试(unit tests) 中模拟一些依赖复杂,难以直接调用的场景,比如网络请求、数据库依赖和文件I/O等。本文介绍了 gomock 的使用方法,包括模拟参数(Any, Nil, Not, Eq)和返回值(Do, Return, DoAndReturn),以及调用次数(Times) 和顺序(InOrder),如何写可测试可mock的代码。

5 分钟

动手写分布式缓存 - GeeCache第三天 HTTP 服务端

7天用 Go语言/golang 从零实现分布式缓存 GeeCache 教程(7 days implement golang distributed cache from scratch tutorial),动手写分布式缓存,参照 groupcache 的实现。本文介绍了如何使用标准库 http 搭建 HTTP Server,为 GeeCache 单机节点搭建 HTTP 服务,并进行相关的测试。

8 分钟

动手写分布式缓存 - GeeCache第二天 单机并发缓存

7天用 Go语言/golang 从零实现分布式缓存 GeeCache 教程(7 days implement golang distributed cache from scratch tutorial),动手写分布式缓存,参照 groupcache 的实现。本文介绍了 sync.Mutex 互斥锁的使用,并发控制 LRU 缓存。实现 GeeCache 核心数据结构 Group,缓存不存在时,调用回调函数(callback)获取源数据。

5 分钟

动手写分布式缓存 - GeeCache第一天 LRU 缓存淘汰策略

7天用 Go语言/golang 从零实现分布式缓存 GeeCache 教程(7 days implement golang distributed cache from scratch tutorial),动手写分布式缓存,参照 groupcache 的实现。本文介绍了常用的三种缓存淘汰(失效)算法:先进先出(FIFO),最少使用(LFU) 和 最近最少使用(LRU),并实现 LRU 算法和相应的测试代码。

7 分钟

Go Test 单元测试简明教程

本文介绍了Go语言(golang) 如何写单元测试(unit tests),详细介绍了标准库 testing 的使用。包括子测试(subtests),帮助函数(helpers),setup 和 teardown 机制,网络测试(Network, http) 和基准测试(benchmark)