跳转到内容

Redisun 介绍

Redisun 是一个基于 smart-socket 开发的轻量级高性能 Redis 客户端,专为 Java 平台设计。它支持异步非阻塞 I/O 操作,提供与 Redis 服务器兼容的内存键值存储访问能力。

💡 核心特性

  • 轻量级设计:核心代码仅由少量类组成,jar包仅33KB,资源占用极小
  • 高性能通信:基于 smart-socket Java AIO 实现,单线程处理能力强,资源消耗低
  • 连接复用技术:创新的连接复用机制,一个连接可同时处理多个并发请求
  • RESP 协议支持:完整支持 Redis 序列化协议(RESP),兼容 Redis 服务器

下面是一个简单的使用示例,展示了如何使用 Redisun 进行基本的 Redis 操作:

import tech.smartboot.redisun.Redisun;
public class BasicExample {
public static void main(String[] args) {
// 创建 Redisun 客户端实例
Redisun redisun = Redisun.create(options ->
options.setAddress("127.0.0.1:6379") // 设置 Redis 服务器地址
.debug(true) // 开启调试模式
);
try {
// 设置键值对
boolean setResult = redisun.set("hello", "world");
System.out.println("SET操作结果: " + setResult);
// 获取键值
String getResult = redisun.get("hello");
System.out.println("GET操作结果: " + getResult);
// 删除键
int delResult = redisun.del("hello");
System.out.println("DEL操作结果: " + delResult);
} finally {
// 关闭客户端,释放资源
redisun.close();
}
}
}

Redisun 还支持更多 Redis 命令,例如有序集合操作:

// 添加元素到有序集合
int zaddResult = redisun.zadd("myzset", 1.0, "member1");
System.out.println("ZADD操作结果: " + zaddResult);
// 可选参数设置
boolean setResultWithOptions = redisun.set("key", "value", cmd ->
cmd.expire(60) // 设置60秒过期
.setIfNotExists() // 仅在键不存在时设置
);
System.out.println("带选项的SET操作结果: " + setResultWithOptions);

通过这些示例,您可以看到 Redisun 的 API 设计简洁直观,易于集成到您的项目中。

Redisun 正在不断扩展对 Redis 命令的支持。以下是当前命令实现状态:

命令描述实现类备注
HELLO服务器握手和认证HelloCommand支持认证和协议协商
SET设置键值对SetCommand完整选项支持:NX、XX、EX、PX、PXAT、KEEPTTL
GET获取键的值GetCommand基本键值检索
DEL删除一个或多个键DelCommand支持多键删除
ZADD向有序集合添加成员ZAddCommand基本有序集合成员添加
SELECT切换数据库SelectCommand仅在初始连接时执行,不支持运行时切换
DBSIZE返回当前数据库的键数量DBSizeCommand统计当前数据库键数量
FLUSHALL清空所有数据库FlushAllCommand删除所有数据库中的键
FLUSHDB清空当前数据库FlushDbCommand清除当前数据库
EXISTS检查键是否存在ExistsCommand检查一个或多个键是否存在
INCR将键的整数值加一IncrCommand原子递增操作
DECR将键的整数值减一DecrCommand原子递减操作
APPEND追加值到键AppendCommand字符串追加操作
STRLEN获取键值的长度StrlenCommand字符串长度操作
HSET设置哈希字段的字符串值HSetCommand哈希字段设置操作
HGET获取哈希字段的值HGetCommand哈希字段获取操作
SADD向集合添加一个或多个成员SAddCommand集合成员添加操作
INCRBY将键的整数值增加给定数值IncrByCommand原子递增操作
DECRBY将键的整数值减少给定数值DecrByCommand原子递减操作
MGET获取所有给定键的值MGetCommand获取多个键值
MSET设置多个键值对MSetCommand设置多个键值对
EXPIRE为给定 key 设置过期时间ExpireCommand支持 NX, XX, GT, LT 选项
TTL获取键的剩余过期时间TtlCommand以秒为单位返回键的剩余生存时间
TYPE获取键值的类型TypeCommand返回键值的类型
LPUSH在列表头部插入元素LPushCommand在列表头部插入一个或多个元素
RPUSH在列表尾部插入元素RPushCommand在列表尾部插入一个或多个元素
LPOP移除并返回列表头部元素LPopCommand移除并返回列表的第一个元素
RPOP移除并返回列表尾部元素RPopCommand移除并返回列表的最后一个元素
ZREM从有序集合中移除成员ZRemCommand从有序集合中移除一个或多个成员
ZRANGE返回有序集合的成员范围ZRangeCommand返回有序集合指定索引范围的成员
ZSCORE获取有序集合成员的分数ZScoreCommand获取有序集合中指定成员的分数

我们正在积极扩展 Redis 命令支持。未来版本将包括更多命令。

Redisun 提供了强大的扩展机制。您可以通过继承 Command 基类轻松实现自定义 Redis 命令。这使得添加库中尚未内置的任何 Redis 命令支持变得简单。

有关使用自定义命令扩展 Redisun 的详细信息,请参阅我们的扩展指南