# mini-redis **Repository Path**: lvzihao521/mini-redis ## Basic Information - **Project Name**: mini-redis - **Description**: 用Java从0搭建一个redis - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-05-12 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mini-Redis 项目说明文档 ## 项目简介 `mini-redis` 是一个轻量级的 Redis 实现,支持 Redis 的核心功能,包括多种数据结构(字符串、哈希、列表、集合、有序集合)、RDB 持久化、AOF 持久化等。该项目使用 Java 编写,基于 Netty 实现网络通信,并提供了 Redis 客户端和服务端的基本功能。 ## 功能特性 - **数据结构支持**:支持 Redis 常见的数据结构,包括字符串、哈希、列表、集合、有序集合。 - **持久化机制**: - **RDB**:支持快照持久化,可将内存数据保存到磁盘。 - **AOF**:支持追加日志持久化,记录所有写操作命令,保障数据安全。 - **网络通信**:基于 Netty 实现高性能网络通信。 - **多数据库支持**:支持多个逻辑数据库。 - **命令解析**:支持 RESP 协议解析,兼容 Redis 客户端命令。 ## 项目结构 - `src/main/java/org/breathe/`:核心模块,包含服务端、客户端、命令处理、数据结构、持久化等核心功能。 - `src/test/java/org/breathe/`:测试模块,包含 AOF、RDB 等核心组件的单元测试。 - `pom.xml`:Maven 项目配置文件,定义项目依赖和构建配置。 ## 安装与运行 ### 环境要求 - Java 8 或更高版本 - Maven 3.x ### 构建项目 ```bash mvn clean package ``` ### 启动 Redis 服务端 ```bash java -cp target/mini-redis.jar org.breathe.RedisServerLauncher ``` ### 启动 Redis 客户端 ```bash java -cp target/mini-redis.jar org.breathe.RedisClientLauncher ``` ## 使用示例 ### 基本命令使用 - **SET/GET**:设置和获取字符串值 ```bash SET key value GET key ``` - **HSET/HGET**:操作哈希表 ```bash HSET key field value HGET key field ``` - **LPUSH/RPOP**:操作列表 ```bash LPUSH key value1 value2 RPOP key ``` - **SADD/SMEMBERS**:操作集合 ```bash SADD key member1 member2 SMEMBERS key ``` - **ZADD/ZRANGE**:操作有序集合 ```bash ZADD key score member ZRANGE key start stop ``` ### 持久化操作 - **SAVE**:手动触发 RDB 快照保存 ```bash SAVE ``` - **BGSAVE**:后台异步保存 RDB 快照 ```bash BGSAVE ``` - **AOF 持久化**:默认开启 AOF 持久化,所有写操作都会记录到日志文件中。 ## 持久化配置 - **RDB**:默认配置文件为 `dump.rdb`,可通过 `RdbManager` 配置保存路径和频率。 - **AOF**:默认日志文件为 `appendonly.aof`,支持多种刷盘策略(每秒同步、每次写入同步等)。 ## 测试 运行单元测试: ```bash mvn test ``` ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 项目 2. 创建新分支 (`git checkout -b feature/new-feature`) 3. 提交更改 (`git commit -am 'Add new feature'`) 4. 推送分支 (`git push origin feature/new-feature`) 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证。详情请参阅 [LICENSE](LICENSE) 文件。