2017-08-22 1 views
1

Ich recherchiere derzeit auf Redis, um Daten über UNIX-Sockets abzurufen.Spring Data Redis: Verbinden über UNIX Sockets

Ich habe die redis.conf-Datei aktualisiert, um dies zu reflektieren, indem ich den Pfad zu redis.sock definiere (in meinem Fall ist es /tmp/redis.sock).

Mit Spring Data Redis (über JedisConnectionFactory), kann ich sehen, dass es Methoden zum Verbinden mit Redis über TCP (d. H. Definieren von Hostname und Port). Ich sehe jedoch keine Methoden für die Verbindung über UNIX-Sockets (es sei denn, ich habe etwas übersehen).

Weiß jemand, wie ich Redis unter Verwendung von UNIX-Sockets über Spring Data Redis verbinden kann?

Jede Beratung Hilfe/geschätzt wird.

Antwort

1

Java kann keine Unix-Domain-Sockets erstellen oder darauf zugreifen, ohne eine (native) Bibliothek von Drittanbietern zu verwenden.

Und die Feder-Daten-Redis verwenden die Jedis oder Jredis oder andere als Motor. Jedis unterstützt diese Methode nicht, um eine Verbindung herzustellen. Ich denke, andere unterstützen es auch nicht. Weil der Unix-Socket nur in der lokalen Maschine verwendet werden kann.

Sie können diese Client-Bibliothek überprüfen Sie dies, um sicherzustellen.

1

Java kann keine Unix-Domain-Sockets erstellen oder darauf zugreifen, ohne eine (native) Bibliothek von Drittanbietern zu verwenden.

Das stimmt im Allgemeinen. Jedis hat (zum Schreiben dieser Antwort) keine Unix Domain Socket Unterstützung. Lettuce und Redisson Verwenden Sie Netty für I/O, die Unterstützung für native transports (Epoll und Kqueue) hat. Ein nativer Transport ist erforderlich, um Unix-Domain-Sockets zu verwenden, die vom zugrunde liegenden Betriebssystem abhängen.

Salat ist in integriert, aber es gibt keine native Transportoption yet.

Referenzen:

+0

Ich erstatten [ticket] (https://jira.spring.io/browse/DATAREDIS-682) zu unterstützen Unix-Domain-Socket-Verbindungen. – mp911de

Verwandte Themen