# Redisun
**Repository Path**: smartboot/redisun
## Basic Information
- **Project Name**: Redisun
- **Description**: Redisun:专注于Redis相关技术的开源项目,提供高效的数据结构存储、处理解决方案,支持多种应用场景,助力开发者实现高性能应用开发。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 11
- **Forks**: 1
- **Created**: 2025-10-21
- **Last Updated**: 2025-10-24
## Categories & Tags
**Categories**: cache-modules
**Tags**: smart-socket, Redis, Java, SpringBoot
## README

[](https://central.sonatype.com/artifact/tech.smartboot/redisun)
[](https://gitee.com/smartboot/redisun/blob/master/LICENSE)
Redisun 是一个基于 [smart-socket](https://gitee.com/smartboot/smart-socket) 开发的轻量级 Redis 客户端,专为 Java 平台设计,支持异步非阻塞 I/O 操作,提供高性能的 Redis 连接和命令执行能力。
## 特性
- **异步非阻塞通信**:基于 Java NIO 实现,充分利用系统资源,提高并发处理能力
- **连接池管理**:内置高效连接池,自动管理连接生命周期,确保连接的高效复用
- **RESP 协议支持**:完整支持 Redis 序列化协议(RESP),兼容 Redis 服务器
- **命令扩展机制**:提供简单易用的命令扩展接口,方便添加自定义 Redis 命令
- **多数据库支持**:支持 Redis 多数据库切换
- **认证支持**:支持 Redis 服务器的用户名/密码认证
- **插件机制**:集成 smart-socket 插件体系,便于监控和调试
## 核心组件
- **Redisun**:核心客户端类,提供连接管理和命令执行功能
- **Command**:Redis 命令的抽象基类,支持自定义命令扩展
- **RESP**:Redis 序列化协议解析器,支持多种数据类型
- **RedisMessageProcessor**:消息处理器,负责解析 Redis 服务器响应
- **RedisSession**:会话管理器,维护客户端与服务器的会话状态
## 安装
### Maven
```xml
tech.smartboot
redisun
1.0.0
```
### Gradle
```gradle
implementation 'tech.smartboot:redisun:1.0.0'
```
## 快速开始
### 基本用法
```java
import tech.smartboot.redisun.Redisun;
Redisun redisun = Redisun.create(options -> {
options.setAddress("redis://127.0.0.1:6379");
// 或者使用带认证信息的地址
// options.setAddress("redis://username:password@127.0.0.1:6379");
});
try {
// 设置键值
boolean setResult = redisun.set("mykey", "myvalue");
System.out.println("SET command result: " + setResult);
// 获取键值
String getResult = redisun.get("mykey");
System.out.println("GET command result: " + getResult);
// 执行有序集合命令
int zaddResult = redisun.zadd("myzset", 1.0, "member1");
System.out.println("ZADD command result: " + zaddResult);
// 删除键
int delResult = redisun.del("mykey");
System.out.println("DEL command result: " + delResult);
} catch (Exception e) {
e.printStackTrace();
} finally {
redisun.close();
}
```
### SET 命令高级用法
```java
Redisun redisun = Redisun.create(options -> {
options.setAddress("redis://127.0.0.1:6379");
});
try {
// 基本设置
redisun.set("key1", "value1");
// 仅在键不存在时设置(NX选项)
boolean nxResult = redisun.set("key2", "value2", cmd -> cmd.setIfNotExists());
// 仅在键存在时设置(XX选项)
boolean xxResult = redisun.set("key1", "newvalue", cmd -> cmd.setIfExists());
// 设置过期时间(秒)
redisun.set("key3", "value3", cmd -> cmd.expire(60));
// 设置过期时间(毫秒)
redisun.set("key4", "value4", cmd -> cmd.expireMs(30000));
// 在指定时间过期
redisun.set("key5", "value5", cmd -> cmd.expireAt(new Date(System.currentTimeMillis() + 60000)));
// 保留键的生存时间
redisun.set("key1", "anotherValue", cmd -> cmd.keepTTL());
} catch (Exception e) {
e.printStackTrace();
} finally {
redisun.close();
}
```
### 高级配置
```java
Redisun redisun = Redisun.create(options -> {
// 设置服务器地址
options.setAddress("redis://127.0.0.1:6379")
// 设置数据库
.setDatabase(1)
// 启用调试模式
.debug(true);
});
```
## 支持的命令
目前支持的 Redis 命令:
- `HELLO` - 服务器握手和认证
- `SET` - 设置键值对,支持多种选项(NX, XX, EX, PX, EXAT, PXAT, KEEPTTL)
- `GET` - 获取键的值
- `DEL` - 删除一个或多个键
- `ZADD` - 向有序集合添加成员
更多命令支持正在开发中,您也可以通过继承 [Command](src/main/java/tech/smartboot/redisun/Command.java) 类轻松扩展自定义命令。
## 构建与测试
确保已安装 Maven,然后运行以下命令:
```bash
mvn clean package
```
运行测试:
```bash
mvn test
```
## 许可证
该项目使用 [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) 许可证。
## 贡献
欢迎提交 Pull Request 和建议。请参阅项目 [issue 跟踪](https://gitee.com/smartboot/redisun/issues) 获取待办事项。
## 联系方式
如有问题或建议,请提交 issue 或联系项目维护者 [三刀](https://gitee.com/smartdms)。