web-dev-qa-db-ja.com

Javaに最適なRedisライブラリ

Redisの公式ホームページには、JDBC-RedisとJRedisがリストされています。それぞれの利点/欠点は何ですか?他のオプションはありますか?

73
muriloq

Jedis も使用できます。これは Redisの公式クライアントページ にもあります。 Redisの最新バージョンと互換性があります。

更新

2012年6月の時点で、JedisはJava Redis公式ページで推奨されているクライアントライブラリです。

73
xetorthio

JDBC-Redis、Jredis、Jedisを試しました。 JDBC-Redisはパフォーマンスが得意ではありません。 JRedisとJedisはどちらも高速です。私はJredisを使いますが、今はJedisが好きです。シンプルであり、ネットワーク接続エラーを思い通りに処理できるからです。

12
secmask

JedisJRedis の両方が積極的に開発されています。私はジェダイをより積極的に開発しているように思えるので、個人的にジェダイを使用しています。

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/

[〜#〜] update [〜#〜]Spring Dataは、 rjc (Redis = Java Client)-しかし、その長所/短所がわからない。

10
opyate

最も簡単な解決策は、最低レベルでの作業を心配せずに、代わりにJOhmのようなオブジェクトハッシュマッパー(OHM)を使用することです。 JOhmを使用すると、ユーザーは既存のオブジェクトに使い慣れた注釈を付けて、コードを変更することなくRedisに永続化できます。外部設定さえ必要ありません。 OHMは、RDBMSのORMに対応するNoSQLと考えることができます。

JOhmはホストされています ここ

5
gshx

ジェディスはとても良いクライアントです。私はjedisを使用してredisに対するパフォーマンステストを行いました。 50クライアント、20秒で100万のリクエストが完了(古いIntel 2core 2.6gマシン、100mネットワーク上)。 1000mネットワークを使用してテストを行うことができれば、パフォーマンスははるかに高くなると考えています。

5
CharlieQ

単なる更新:jredisはもはやアクティブではないようですが、jedisは強力になり、最近実装されたいくつかの優れた機能があります。また、JOhmの同じ開発者でもあります。

githubのreadmeから抽出:

それでは、ジェディスで何ができますか? [...]

取引

パイプライン

パブリッシュ/サブスクライブ

持続性

制御コマンド

リモートサーバー制御コマンド

接続プーリング

シャーディング(MD5、MurmureHash)

シャーディングのキータグ

パイプライン処理によるシャーディング

私は最近、半ダースのプロジェクトでjredisを使用していましたが、驚くことなく、それらすべてをすぐにjedisに移動しました。

4
mpenet

JDBC-Redisは、JRedisデータベースのJDBCラッパーです。
異なるバックエンドでコードを使用する予定がある場合は、JDBCが最適です。注:これは完全なJDBC実装ではなく、NOSQLはブリードスルーします。
Redisを使用する場合は、APIを使用することをお勧めします。これにより、柔軟性が向上します。 DAOレイヤーパターンを使用して、DB Accessをカプセル化し、変更する必要があるすべてを行います。

2
Romain Hippeau