Die offizielle Redis-Homepage listet JDBC-Redis und JRedis auf. Was sind die Vor- und Nachteile von jedem? Gibt es noch andere Möglichkeiten?
Antworten:
Sie können auch Jedis verwenden , die sich auch auf der offiziellen Redis-Client-Seite befinden . Es ist kompatibel mit der neuesten Version von Redis.
Seit Juni 2012 ist Jedis die von der offiziellen Redis-Seite empfohlene Java-Clientbibliothek.
Sowohl Jedis als auch JRedis werden aktiv entwickelt. Ich persönlich benutze Jedis, da es aktiver zu sein scheint.
Spring bietet einen Wrapper für beide Implementierungen und bietet unter anderem Serialisierung / Deserialisierung:
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 hat jetzt Unterstützung für eine dritte Bibliothek namens rjc (Redis Java Client) hinzugefügt. Ich weiß jedoch nicht, welche Vor- und Nachteile dies hat.
Eine einfachere Lösung besteht darin, sich nicht um die Arbeit auf der niedrigsten Ebene zu kümmern, sondern stattdessen einen Object Hash Mapper (OHM) wie JOhm zu verwenden. Mit JOhm können Benutzer ihre vorhandenen Objekte mit vertrauten Anmerkungen dekorieren, um Redis die Persistenz ohne invasive Codeänderungen zu ermöglichen. Es benötigt nicht einmal eine externe Konfiguration. Sie können sich das OHM als NoSQL-Gegenstück zum ORM von RDBMS vorstellen.
JOhm wird hier gehostet
Jedis ist ein sehr guter Kunde. Ich habe jedis benutzt, um einen Leistungstest gegen Redis durchzuführen. 50 Clients, 1 Million Anfragen in 20 Sekunden erledigt (auf einem alten Intel 2core 2.6g Computer, 100m Netzwerk). Ich glaube, dass die Leistung viel höher sein kann, wenn ich 1000m Netzwerk verwenden kann, um den Test durchzuführen.
Nur ein Update: Es scheint, dass Jredis nicht mehr so aktiv ist. Jedis ist jedoch stark und hat kürzlich einige großartige Funktionen implementiert. Es ist auch der gleiche Entwickler von JOhm.
Auszug aus ihrer Readme auf Github:
Ok .. also was kann ich mit Jedis machen? [...]
Transaktionen
Pipelining
Veröffentlichen / Abonnieren
Beharrlichkeit
Steuerbefehle
Remote-Server-Steuerbefehle
Verbindungspooling
Scherben (MD5, MurmureHash)
Key-Tags zum Sharding
Scherben mit Pipelining
Ich habe jredis bis vor kurzem für ein halbes Dutzend Projekte verwendet und sie alle in kürzester Zeit ohne Überraschungen zu jedis verschoben.
JDBC-Redis ist nur ein JDBC-Wrapper für die JRedis-Datenbank.
Wenn Sie Ihren Code mit verschiedenen Backends verwenden möchten, ist JDBC ein guter Weg. HINWEIS: Es handelt sich nicht um eine vollständige JDBC-Implementierung, und NOSQL wird ausgeblutet.
Wenn Sie bei Redis bleiben möchten, würde ich die Verwendung der API vorschlagen, die Ihnen mehr Flexibilität bietet. Verwenden Sie ein DAO-Ebenenmuster, um Ihren DB-Zugriff zu kapseln, und das ist alles, was Sie ändern müssen.