JedisSocketFactory.createSocket ha de retornar un socket connectat a punt per transportar trànsit de Redis. A Jedis 5.2.0, l’aplicació forneix aquesta fàbrica i la seva configuració de client Redis aquí:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory implementa redis.clients.jedis.JedisSocketFactory, i redisConfig és el JedisClientConfig de l’aplicació. Estigueu a punt per connectar quan s’executi el constructor: pot fer l’autenticació i altres ajustos de Redis immediatament.

Seguiu un socket des de la creació fins al lliurament

Per a una ruta SOCKS5 sense autenticació, la fàbrica pot crear un java.net.Socket amb un intermediari explícit Proxy.Type.SOCKS i després connectar-se a l’amfitrió i el port de Redis. Deixeu la destinació sense resoldre si el servidor SOCKS ha de resoldre el nom d’amfitrió.

Limiteu l’intent de connexió i apliqueu el temps d’espera de lectura previst. Si la connexió falla, tanqueu aquest socket i informeu de JedisConnectionException; la interfície de la fàbrica no declara IOException comprovat.

Si Redis requereix TLS, establiu i verifiqueu TLS abans de retornar el socket. No es pot suposar que una bandera separada transformi un socket arbitrari retornat per la fàbrica. Per a un pool, repetiu aquest cicle de vida amb un socket nou a cada crida de la fàbrica, incloent-hi les connexions de substitució.

Una selecció HTTP en un ProxySelector global no és una implementació alternativa d’aquesta feina. Redis envia RESP pel seu socket; no es converteix per això en HTTP ni negocia CONNECT.

Articles relacionats