JedisSocketFactory.createSocket мора да врати повезан сокет спреман да преноси Redis саобраћај. У Jedis 5.2.0 апликација предаје ту фабрику и своју конфигурацију Redis клијента овде:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory имплементира redis.clients.jedis.JedisSocketFactory, а redisConfig је JedisClientConfig апликације. Будите спремни за повезивање када се конструктор покрене: може одмах да изврши аутентификацију и друга Redis подешавања.

Пратите један сокет од стварања до предаје

За руту SOCKS5 без аутентификације, фабрика може да створи java.net.Socket са експлицитним посредником Proxy.Type.SOCKS и затим се повеже са Redis хостом и портом. Оставите одредиште неразрешено ако SOCKS сервер треба сам да разреши име хоста.

Ограничите покушај повезивања и примените предвиђени тајмаут читања. Ако веза не успе, затворите тај сокет и пријавите JedisConnectionException; интерфејс фабрике не декларише проверени IOException.

Ако Redis захтева TLS, успоставите и проверите TLS пре враћања сокета. Не може се претпоставити да ће засебна заставица трансформисати произвољан сокет који фабрика врати. За пул, понављајте овај животни циклус са новим сокетом при сваком позиву фабрике, укључујући заменске везе.

Избор HTTP-а у глобалном ProxySelector није алтернативна имплементација овог посла. Redis шаље RESP преко свог сокета; тиме не постаје HTTP нити преговара CONNECT.

Повезани чланци