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 स्थापित और सत्यापित करें। यह नहीं माना जा सकता कि कोई अलग फ़्लैग फ़ैक्टरी द्वारा लौटाए गए किसी भी सॉकेट को बदल देगा। पूल के लिए, हर फ़ैक्टरी कॉल पर नए सॉकेट के साथ यह जीवनचक्र दोहराएँ, प्रतिस्थापन कनेक्शन सहित।

वैश्विक ProxySelector में HTTP चुनाव इस काम का वैकल्पिक कार्यान्वयन नहीं है। Redis अपने सॉकेट पर RESP भेजता है; इससे वह HTTP नहीं बनता और CONNECT पर बातचीत नहीं करता।

संबंधित लेख