78

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

4

7 回答 7

75

您也可以使用Jedis,它也在官方 Redis 客户端页面中。它与最新版本的 Redis 兼容。

更新

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

于 2010-08-26T19:55:52.657 回答
14

我试过 JDBC-Redis、Jredis 和 Jedis。JDBC-Redis 不擅长性能。JRedis 和 Jedis 都很快,我用过 Jredis 很多次,但现在我更喜欢 Jedis,因为它很简单,而且我可以随心所欲地处理网络连接错误。

于 2010-11-05T18:57:51.860 回答
10

Jedis和JRedis在积极开发中。我个人使用 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 客户端)的第三个库的支持——不过,我不知道它的优缺点是什么。

于 2010-10-01T11:29:34.813 回答
5

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

于 2012-05-17T09:39:00.653 回答
4

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

JOHM 在这里托管

于 2010-11-02T21:09:49.517 回答
4

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

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

好的.. 那我可以用 Jedis 做什么?[...]

交易

流水线

发布/订阅

持久性

控制命令

远程服务器控制命令

连接池

分片(MD5,MurmureHash)

分片的关键标签

流水线分片

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

于 2010-12-15T21:46:15.683 回答
1

JDBC-Redis 只是 JRedis 数据库的 JDBC 包装器。
如果您打算将代码与不同的后端一起使用,那么 JDBC 是一个不错的选择。注意:它不是一个完整的 JDBC 实现,NOSQL 会流血。
如果您打算继续使用 Redis,那么我建议您使用 API,这将为您提供更大的灵活性。使用 DAO 层模式来封装您的 DB Access,然后您将需要更改。

于 2010-06-15T17:50:19.113 回答