JedisSocketFactory.createSocket skal returnere en tilsluttet socket, der er klar til at bære Redis-trafik. I Jedis 5.2.0 leverer applikationen den fabrik og sin Redis-klientkonfiguration her:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory implementerer redis.clients.jedis.JedisSocketFactory, og redisConfig er applikationens JedisClientConfig. Vær klar til at forbinde, når konstruktøren kører: den kan udføre godkendelse og andre Redis-opsætninger med det samme.

Følg én socket fra oprettelse til overdragelse

For en uautoriseret SOCKS5-rute kan fabrikken oprette en java.net.Socket med en eksplicit Proxy.Type.SOCKS-mægler og derefter forbinde til Redis-værten og -porten. Hold destinationen uopklaret hvis SOCKS-serveren skal slå værtsnavnet op.

Begræns forbindelsesforsøget, og anvend den tilsigtede læsetimeout. Hvis forbindelsen mislykkes, skal du lukke den socket og rapportere JedisConnectionException; fabriksgrænsefladen erklærer ikke kontrolleret IOException.

Hvis Redis kræver TLS, skal du etablere og verificere TLS, før socketen gives tilbage. Man kan ikke antage, at et separat flag omdanner en vilkårlig socket, som fabrikken returnerer. For en pool skal du gentage denne livscyklus med en ny socket ved hvert fabrikskald, også ved erstatningsforbindelser.

Et HTTP-valg i en global ProxySelector er ikke en alternativ implementering af dette arbejde. Redis sender RESP over sin socket; den bliver dermed ikke HTTP og forhandler ikke CONNECT.

Relaterede artikler