常见的 kv 服务

🕐
我想自己搭建一个简单的kv服务,最好是 go 的,启个server就行的那种。github 有什么好的开源项目推荐?

推荐几个Go 轻量、开箱即用、一键启动的 KV Server 开源项目,按“极简→轻量→功能全”排序,满足你“启个server就行”的需求。

一、极简入门(最适合快速搭建)

1. GoKV(最推荐,Redis 兼容)

  • 地址https://github.com/TechGeeks-Club/GoKV
  • 特点:纯内存、RESP 协议兼容 Redis,一行命令启动,用 redis-cli 直接连
  • 启动bash go run ./cmd/gokv/main.go redis-cli -p 6379
  • 支持SET/GET/DEL/EXISTS/INCR/TTL 等基础命令,代码极短(几百行),适合学习与二次开发

2. AmrSaber/kv(命令行+HTTP 双模式)

  • 地址https://github.com/AmrSaber/kv
  • 特点:单二进制、HTTP API + CLI 工具,无外部依赖
  • 启动bash go install github.com/AmrSaber/kv@latest kv server --port 8080
  • 使用curl http://localhost:8080/set?key=foo&value=bar

二、轻量持久化(带磁盘存储)

3. mini-kvstore-go(生产可用,HTTP API)

  • 地址https://github.com/whispem/mini-kvstore-go
  • 特点:持久化、分段日志、压缩、崩溃恢复,HTTP 接口,适合小型生产场景
  • 启动bash git clone https://github.com/whispem/mini-kvstore-go cd mini-kvstore-go go run main.go
  • APIPOST /api/v1/kv(Set)、GET /api/v1/kv/{key}(Get)

4. redix(超轻量持久化 KV)

  • 地址https://github.com/alash3al/redix
  • 特点:纯 Go、文件持久化、TCP+HTTP 双协议,代码极简
  • 启动bash go get github.com/alash3al/redix redix --port 6379

三、嵌入式+服务化(灵活扩展)

5. olric(分布式内存 KV,可单机)

  • 地址https://github.com/olric-data/olric
  • 特点:可单机可分布式、Redis 兼容、支持过期/持久化,一键单机启动
  • 启动bash go install github.com/olricdata/olric/cmd/olricd@latest olricd

6. nutsdb(嵌入式持久化,可包装成服务)

  • 地址https://github.com/xujiajun/nutsdb
  • 特点:纯 Go、事务、多种数据结构,自己套一层 HTTP/TCP 就是服务
  • 示例:几十行代码即可包装成 HTTP KV Server

四、快速选型对比

项目 协议 持久化 启动难度 代码量 适用场景
GoKV RESP(Redis) 内存 ⭐⭐⭐⭐⭐ 极少 学习、原型、缓存
AmrSaber/kv HTTP/CLI 内存 ⭐⭐⭐⭐⭐ 极少 工具、简单服务
mini-kvstore-go HTTP 磁盘 ⭐⭐⭐⭐ 中等 小型生产
redix TCP/HTTP 磁盘 ⭐⭐⭐⭐ 极少 轻量持久化
olric RESP 内存/磁盘 ⭐⭐⭐ 中等 分布式/单机缓存
nutsdb 嵌入式 磁盘 ⭐⭐⭐ 中等 自定义服务

五、快速启动建议

  • 纯内存、兼容 Redis:选 GoKVredis-cli 直接用
  • 要 HTTP 接口、极简:选 AmrSaber/kvgo install 即用
  • 要持久化、生产可用:选 mini-kvstore-goredix

需要我给你一份 GoKV 快速启动+常用命令 的完整示例脚本吗?