适用于Java的最佳Redis库

时间:2010-06-15 16:18:13

标签: java redis

官方Redis主页列出了JDBC-Redis和JRedis。每个的优点/缺点是什么?还有其他选择吗?

7 个答案:

答案 0 :(得分:73)

您也可以使用Jedisofficial Redis clients page。它与最新版本的Redis兼容。

更新

截至2012年6月,Jedis是Redis官方页面推荐的Java客户端库。

答案 1 :(得分:12)

我尝试过JDBC-Redis,Jredis和Jedis。 JDBC-Redis不擅长性能。 JRedis和Jedis都很快,我多次使用Jredis但现在我更喜欢Jedis,因为它很简单,我可以按照自己的意愿处理网络连接错误。

答案 2 :(得分:10)

正在积极开发JedisJRedis。我个人使用Jedis,因为它似乎更积极地开发。

Spring提供了两个实现的包装器,它们提供了序列化/反序列化等等:

Person p = new Person("Joe", "Trader", 33);
template.convertAndSet("trader:1", p);
Person samePerson = template.getAndConvert("trader:1", Person.class);
Assert.assertEquals(p, samePerson);     

http://git.springsource.org/spring-data/spring-keyvalue-redis/

更新 Spring Data现在添加了对名为rjc(Redis Java Client)的第3个库的支持 - 但我不知道它的优缺点是什么。< / p>

答案 3 :(得分:5)

更简单的解决方案是不要担心在最低级别工作,而是使用像JOhm这样的对象哈希映射器(OHM)。 JOhm允许用户使用熟悉的注释来装饰他们现有的对象,以允许Redis持久化而无需任何侵入性代码更改。它甚至不需要任何外部配置。您可以将OHM视为RDBMS ORM的NoSQL对应物。

JOhm托管here

答案 4 :(得分:5)

Jedis是一个非常好的客户。我使用jedis对redis进行了一些性能测试。 50个客户端,1米请求在20秒内完成(在旧的intel 2core 2.6g机器上,100米网络)。我相信如果我可以使用1000米网络进行测试,性能会更高。

答案 5 :(得分:4)

只是一个更新:似乎jredis不再那么活跃了,但jedis强大并且最近实现了一些很棒的功能,它也是JOhm的开发者。

从github上的自述文件中提取:

好的..那么我怎么能用Jedis做什么? [...]

交易

流水线

发布/订阅

持久性

控制命令

远程服务器控制命令

连接池

Sharding(MD5,MurmureHash)

分片的关键标签

使用流水线进行分片

直到最近我才使用jredis进行了六个项目,很快就将它们全部转移到jedis上,没有任何意外。

答案 6 :(得分:2)

JDBC-Redis只是JRedis数据库的JDBC包装器 如果您计划使用具有不同后端的代码,那么JDBC是一个很好的方法。注意:它不是一个完整的JDBC实现,NOSQL将会流失 如果您打算继续使用Redis,那么我建议使用API​​,这将为您提供更大的灵活性。使用DAO图层模式封装您的数据库访问,以及您需要更改的所有内容。