Redis の公式ホームページには、JDBC-Redis と JRedis がリストされています。それぞれの長所と短所は何ですか? 他にオプションはありますか?
7 に答える
公式の Redis クライアント ページにもあるJedisも使用できます。最新バージョンの Redis と互換性があります。
アップデート
2012 年 6 月現在、Jedis は Redis の公式ページで推奨されている Java クライアント ライブラリです。
JDBC-Redis、Jredis、Jedis を試しました。JDBC-Redis はパフォーマンスが良くありません。JRedis と Jedis はどちらも高速です。私は Jredis を何度か使用していますが、今はシンプルでネットワーク接続エラーを処理できるので、Jedis の方が好きです。
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/
UPDATE Spring Data は、 rjc (Redis Java Client)と呼ばれる 3 番目のライブラリのサポートを追加しました。ただし、その長所/短所はわかりません。
ジェディスはとても良いクライアントです。jedis を使用して、redis に対するパフォーマンス テストを行いました。50 クライアント、20 秒で完了した 1m リクエスト (古い intel 2core 2.6g マシン、100m ネットワーク)。1000m のネットワークを使用してテストを行うことができれば、パフォーマンスははるかに高くなると思います。
ただの更新:jredisはもうそれほどアクティブではないようですが、jedisは強力になり、最近いくつかの優れた機能が実装されました。これはJOhmの同じ開発者でもあります。
githubのreadmeから抽出します。
わかりました。では、ジェダイで何ができるでしょうか。[...]
トランザクション
パイプライン
パブリッシュ/サブスクライブ
永続性
制御コマンド
リモートサーバー制御コマンド
接続プール
シャーディング(MD5、MurmureHash)
シャーディング用のキータグ
パイプラインによるシャーディング
私は最近まで半ダースのプロジェクトでjredisを使用していましたが、驚くことなく、すぐにすべてをjedisに移動しました。
より簡単な解決策は、最低レベルでの作業について心配するのではなく、代わりにJOhmのようなオブジェクトハッシュマッパー(OHM)を使用することです。JOhmを使用すると、ユーザーは既存のオブジェクトを使い慣れたアノテーションで装飾して、侵襲的なコード変更なしでRedisに永続化できるようになります。外部構成も必要ありません。OHMは、RDBMSのORMに対応するNoSQLと考えることができます。
JOhmはここでホストされています
JDBC-Redisは、JRedisデータベースの単なるJDBCラッパーです。
さまざまなバックエンドでコードを使用することを計画している場合は、JDBCが適しています。注:これは完全なJDBC実装ではなく、NOSQLがブリードスルーします。
Redisを使い続ける場合は、APIを使用することをお勧めします。これにより、柔軟性が向上します。DAOレイヤーパターンを使用してDBAccessをカプセル化し、変更する必要があるのはこれだけです。