Documentation
¶
Overview ¶
Package data 是 oekit 数据访问门面——复刻 ekit 单体库 data/ 的能力面: 缓存、CRUD、分布式锁、GORM、Redis、定时任务,一个 import 前缀直达。
八个子包是纯 re-export 壳:类型为泛型 type alias(与源包完全同一类型, 双向赋值互通),实现分别住在 pkg/cache 与 gormx/redisx/timertask 各子仓; 门面只做命名空间聚合,不持有实现。只使用单一能力时可直接依赖对应子仓 (依赖面最小);全家桶场景 go get github.com/oekit/data 即可。
唯一例外是 cached:缓存读写编排层(v0.6.0 起),把 cache-aside 语义 (写后失效、读未命中回源回填、null marker 防穿透)套在 gormx/crud 仓储上——增删改写库后失效缓存,查询未命中构建缓存;事务路径在提交后 统一失效。实现住本仓(组合 crud + pkg/cache 接口,无新底层依赖)。
子包地图(目标 ← 实现仓):
cache/ ← pkg/cache 缓存接口 + LocalCache/SingleFlightCache + 键构造 + Checker rediscache/ ← redisx/cache Redis 分布式缓存(CacheAside 的 Redis 后端) crud/ ← gormx/crud 框架无关 CRUD Service/仓储 distlock/ ← redisx/distlock 分布式锁 gormx/ ← gormx SQL/GORM 增强 redisx/ ← redisx Redis 客户端封装 timertask/ ← timertask 分片定时任务 cachetest/ ← pkg/cache/cachetest 缓存实现契约测试套件 cached/ ← 本仓实现 缓存读写编排(仓储装饰器,见其包文档)
门面跟版约定:八个壳子包在源仓新增导出符号时需同步(dependabot 只升 pin 不补壳);接口与契约的实现演进以源仓 README 为准;cached 的演进 以本仓 README 为准。
Directories
¶
| Path | Synopsis |
|---|---|
|
all
module
|
|
|
Package cache 是 data 门面子包:缓存域——接口(Cache/CacheAside/SourceFunc)+ 本地缓存(LocalCache/SingleFlightCache)+ 缓存键构造 + Checker。
|
Package cache 是 data 门面子包:缓存域——接口(Cache/CacheAside/SourceFunc)+ 本地缓存(LocalCache/SingleFlightCache)+ 缓存键构造 + Checker。 |
|
Package cached 是 oekit 的缓存读写编排层:把 cache-aside 语义 (写后失效、读未命中回源回填、null marker 防穿透)套在 gormx/crud 仓储之上,让 CRUD 自动获得缓存一致性编排。
|
Package cached 是 oekit 的缓存读写编排层:把 cache-aside 语义 (写后失效、读未命中回源回填、null marker 防穿透)套在 gormx/crud 仓储之上,让 CRUD 自动获得缓存一致性编排。 |
|
Package cachetest 是 data 门面子包:CacheAside 实现契约测试套件(8 场景,含 -race)。
|
Package cachetest 是 data 门面子包:CacheAside 实现契约测试套件(8 场景,含 -race)。 |
|
Package crud 是 data 门面子包:框架无关 CRUD——Service/Repository/查询构造。
|
Package crud 是 data 门面子包:框架无关 CRUD——Service/Repository/查询构造。 |
|
Package distlock 是 data 门面子包:分布式锁——RedisLocker + WithLock + 优雅降级。
|
Package distlock 是 data 门面子包:分布式锁——RedisLocker + WithLock + 优雅降级。 |
|
Package gormx 是 data 门面子包:SQL/GORM 增强——Open/连接池/审计与 OTel 插件/日志/分页/单例仓储/事务。
|
Package gormx 是 data 门面子包:SQL/GORM 增强——Open/连接池/审计与 OTel 插件/日志/分页/单例仓储/事务。 |
|
internal
|
|
|
testsame
Package testsame 提供门面壳测试的类型同一性编译期断言 helper。
|
Package testsame 提供门面壳测试的类型同一性编译期断言 helper。 |
|
Package rediscache 是 data 门面子包:Redis 分布式缓存(RedisCache,CacheAside 的 Redis 后端,跑 pkg/cache/cachetest 契约)。
|
Package rediscache 是 data 门面子包:Redis 分布式缓存(RedisCache,CacheAside 的 Redis 后端,跑 pkg/cache/cachetest 契约)。 |
|
Package redisx 是 data 门面子包:Redis 客户端封装——String/Hash/List/Set/ZSet/Counter/BloomFilter/Batch/PubSub 操作。
|
Package redisx 是 data 门面子包:Redis 客户端封装——String/Hash/List/Set/ZSet/Counter/BloomFilter/Batch/PubSub 操作。 |
|
Package timertask 是 data 门面子包:分片定时任务——Local/Redis 后端 + FNV-1a 分片 + 心跳续约。
|
Package timertask 是 data 门面子包:分片定时任务——Local/Redis 后端 + FNV-1a 分片 + 心跳续约。 |
Click to show internal directories.
Click to hide internal directories.