go-flashdb

goflashdb

Go Report Card License: MIT Documentation Version

🚀 goflashdb - Go 语言实现的高性能、Redis 兼容的生产级键值存储系统

📚 在线文档 🎯 快速开始 🏗️ 架构设计

✨ 特性

🚀 快速开始

编译安装

# 克隆项目
git clone https://github.com/strings77wzq/goflashdb.git
cd goflashdb

# 编译
go build -o goflashdb ./cmd/goflashdb

# 启动
./goflashdb

使用 redis-cli 测试

redis-cli ping
# PONG

redis-cli set hello world
# OK

redis-cli get hello
# "world"

redis-cli hset user:1 name "Alice" age "30"
# (integer) 2

redis-cli hgetall user:1
# 1) "name"
# 2) "Alice"
# 3) "age"
# 4) "30"

redis-cli lpush mylist a b c
# (integer) 3

redis-cli lrange mylist 0 -1
# 1) "c"
# 2) "b"
# 3) "a"

redis-cli sadd myset x y z
# (integer) 3

redis-cli smembers myset
# 1) "x"
# 2) "y"
# 3) "z"

📖 文档

📊 性能

操作 QPS P99 延迟
SET ~120k < 1ms
GET ~150k < 0.5ms
HSET ~100k < 1ms
LPUSH ~90k < 1ms
SADD ~95k < 1ms

🛠️ 支持的命令

字符串 (String)

SET, GET, SETNX, SETEX, PSETEX, MSET, MGET, INCR, DECR, INCRBY, DECRBY, APPEND, STRLEN

哈希 (Hash)

HSET, HGET, HDEL, HMGET, HGETALL, HEXISTS, HLEN, HKEYS, HVALS

列表 (List)

LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN, LINDEX, LSET, LTRIM

集合 (Set)

SADD, SREM, SISMEMBER, SMEMBERS, SCARD, SPOP, SRANDMEMBER

键 (Key)

DEL, EXISTS, EXPIRE, TTL

连接 (Connection)

PING, AUTH

服务器 (Server)

SAVE

⚙️ 配置

# 绑定地址
bind_addr: ":6379"

# 持久化配置
append_only: true
append_filename: "appendonly.aof"
rdb_filename: "dump.rdb"

# 安全配置
require_pass: ""
max_clients: 10000

🏗️ 项目结构

goflashdb/
├── cmd/goflashdb/      # 主程序入口
├── pkg/
│   ├── core/           # 核心数据结构和命令
│   ├── resp/           # RESP 协议实现
│   ├── persist/        # 持久化 (AOF/RDB)
│   ├── security/       # 安全模块 (认证/限流/过滤)
│   ├── net/            # 网络服务
│   ├── config/         # 配置管理
│   └── extension/      # AI 扩展接口
├── docs/               # 文档
└── test/               # 测试

📚 文档与学习

在线文档

访问 https://strings77wzq.github.io/go-flashdb/ 查看完整文档:

教程系列

  1. 快速开始 - 安装与基础命令
  2. TCP 服务器 - goroutine-per-connection 模型
  3. 并发字典 - 65536 分片设计解析

为什么选择 go-flashdb?

相比其他 Redis 实现,go-flashdb 更注重教学价值工程实践

🤝 贡献

欢迎贡献代码!请查看 CONTRIBUTING.md

📄 许可证

MIT License

致谢