-
Notifications
You must be signed in to change notification settings - Fork 2
试用了redis.io上面推荐的两个java客户端,包括jredis和jedis,发现都无法满足我的需要,其中jredis无法在redis2.2之后的版本中使用,而jedis的并发性能也不够理想,使用也比较繁琐,所以就诞生了这个项目。
Redis4J的最终目标是成为一个高性能、易用的redis客户端程序,因此通讯部分选择了java nio方式。Redis4J主要包括两部分,一部分是api,主要包括了redis各种功能函数的定义;另一部分是通讯模块,这一部分完全基于netty,我只是实现了几个类供netty回调进行通讯。
在api部分包含了三种客户端,分别是
1. IRedisAsyncClient : 实现了redis提供的异步功能函数,如monitor,后续会添加队列操作功能。
2. IRedisCacheClient : 实现了一个纯粹的缓存版本客户端,以满足redis作为缓存使用时的需求。
3. IRedisDatabaseClient : 实现了一个支持redis全部命令的客户端,适用于将Redis作为数据库使用时的客户端。
第二种和第三种的主要区别如下
| IRedisCacheClient | IRedisDatabaseClient | |
| redis全命令支持 | × | √ |
| 根据key自动分片(Sharding) | √ | × |
| 事物支持(Transaction) | × | √ |
| 批处理支持(Pipiline) | × | √ |
| 序列化方式 | protostuff | String.getBytes() |
| 参数及返回类型 | 泛型 | String |
Redif4J内的三种客户端都是线程安全的,所以使用非常方便,简单调用如下
IRedisDatabaseClient client = RedisClientBuilder.buildDatabaseClient(ip, port, defaultIndexDB, password);
try
{
boolean b = client.set("key", "abc");
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
client.quit();
}