JedisSocketFactory.createSocket moet een verbonden socket teruggeven die klaar is om Redis-verkeer te dragen. In Jedis 5.2.0 levert de applicatie die factory en zijn Redis-clientconfiguratie hier:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory implementeert redis.clients.jedis.JedisSocketFactory, en redisConfig is de JedisClientConfig van de applicatie. Wees klaar om te verbinden wanneer de constructor draait: hij kan authenticatie en andere Redis-instellingen meteen uitvoeren.

Volg één socket van aanmaak tot overdracht

Voor een niet-geauthenticeerde SOCKS5-route kan de factory een java.net.Socket maken met een expliciete Proxy.Type.SOCKS-tussenpersoon en vervolgens verbinden met de Redis-host en -poort. Laat de bestemming onopgelost als de SOCKS-server de hostnaam moet oplossen.

Beperk de verbindingspoging en pas de bedoelde leestime-out toe. Als de verbinding mislukt, sluit die socket en meld JedisConnectionException; de factory-interface declareert geen gecontroleerde IOException.

Als Redis TLS vereist, stel TLS dan in en verifieer het voordat de socket wordt teruggegeven. Er kan niet worden aangenomen dat een aparte vlag een willekeurige door de factory teruggegeven socket omzet. Voor een pool herhaalt u deze levenscyclus met een nieuwe socket bij elke factory-aanroep, inclusief vervangende verbindingen.

Een HTTP-keuze in een globale ProxySelector is geen alternatieve implementatie van dit werk. Redis stuurt RESP over zijn socket; daardoor wordt het geen HTTP en onderhandelt het geen CONNECT.

Gerelateerde artikelen