Sie können Redisson ausprobieren , es implementiert verteilte und skalierbare Java-Datenstrukturen auf dem Redis-Server. Verwenden Sie bekannte Java-Datenstrukturen mit der Kraft von Redis.
Nikita Koksharov
1
Java 8-Kompatibilität?
John Merlino
Was Sie über Salat denken? Es wird auch von der offiziellen Redis-Client-Seite empfohlen
Ich habe JDBC-Redis, Jredis und Jedis ausprobiert. JDBC-Redis ist nicht gut in der Leistung. JRedis und Jedis sind beide schnell, ich benutze Jredis manchmal, aber jetzt bevorzuge ich Jedis, weil es einfach ist und ich Netzwerkverbindungsfehler behandeln kann, wie ich will.
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);
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.
Tut mir leid, aber ich würde JOhm als JPA-Implementierung eines armen Mannes bezeichnen. Im Wesentlichen müssen Sie die Struktur Ihrer komplexen Objekte mit Anmerkungen definieren. Dies wirft die Frage auf, warum Sie überhaupt versuchen, strukturierte Daten in einer "NoSQL" -Datenbank zu speichern. Auch wurde es in 6 Jahren nicht aktualisiert.
Phil
5
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.
@muriloq - aber das mechanische Erfassen und Freigeben von Ressourcen ist Standard.
Romain Hippeau
Eigentlich ist JRedis ein Client für Redis, genauso wie JDBC-Redis ein "Connector / Client" für Redis ist. JDBC-Redis muss so gut wie alle SQL-bezogenen Schnittstellen fehlen, was für mich ein bisschen sinnlos klingt, es sei denn, ich habe etwas verpasst ...
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.
Aktualisieren
Seit Juni 2012 ist Jedis die von der offiziellen Redis-Seite empfohlene Java-Clientbibliothek.
quelle
Ich habe JDBC-Redis, Jredis und Jedis ausprobiert. JDBC-Redis ist nicht gut in der Leistung. JRedis und Jedis sind beide schnell, ich benutze Jredis manchmal, aber jetzt bevorzuge ich Jedis, weil es einfach ist und ich Netzwerkverbindungsfehler behandeln kann, wie ich will.
quelle
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.
quelle
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
quelle
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.
quelle
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.
quelle
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.
quelle