Skip to content

Adwin2/ryan_Redis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ryan_Redis

Go License Documentation

一个使用 Go 语言实现的简化版 Redis 服务器,支持基础键值存储、主从复制功能以及RDB持久化。本项目旨在深入理解 Redis 的核心协议、网络通信模型以及数据持久化机制。

功能特性

核心功能

  • 支持 RESP (REdis Serialization Protocol) 协议
  • 数据结构支持:String
  • 主从复制(Master-Slave Replication)
  • 支持 RDB 持久化

运行

# 启动主节点
go run cmd/server/main.go -port 6379 -role master

# 启动从节点(在另一个终端)
go run cmd/server/main.go -port 6380 -role slave -master-addr localhost:6379

使用示例

# 连接到主节点
redis-cli -p 6379

# 设置键值
SET mykey "Hello Redis"

# 获取键值
GET mykey

# 查看主从复制状态
INFO replication

测试示例 见 ./docs/test.md

实现细节

  1. 网络层 使用 Go 的 net 包实现 TCP 服务器 基于 goroutine 的并发模型

  2. 主从复制 支持全量同步

  3. 持久化 RDB 持久化 本项目采用 MIT 许可证- 详情请参阅 LICENSE 文件。

About

个人复现主从模式的简易Redis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages