适用于Java的最佳Redis库

mur*_*loq 74 java redis

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

小智 73

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

更新

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

  • 您可以尝试[Redisson](https://github.com/mrniko/redisson),它在Redis服务器上实现分布式和可伸缩的Java数据结构.使用熟悉的Java数据结构和Redis的强大功能. (8认同)

sec*_*ask 13

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


opy*_*ate 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);     
Run Code Online (Sandbox Code Playgroud)

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

更新 Spring Data现在增加了对第三个库rjc(Redis Java Client)的支持 - 但我不知道它的优缺点是什么.


gsh*_*shx 5

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

JOhm 在这里举办


Cha*_*ieQ 5

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


Rom*_*eau 1

JDBC-Redis 只是 JRedis 数据库的 JDBC 包装器。
如果您计划将代码与不同的后端一起使用,那么 JDBC 是一个不错的选择。注意:这不是一个完整的 JDBC 实现,NOSQL 将会渗透。
如果您打算继续使用 Redis,那么我建议您使用 API,这会给您带来更大的灵活性。使用 DAO 层模式来封装您的数据库访问,这就是您需要更改的全部内容。

  • Redis 语法与标准 SQL 完全不同,因此使用 JDBC 无助于封装不同的后端,正如您所建议的:无论如何,我都必须编写新的查询...... (2认同)