Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

redis.conf में tcp-backlog क्या है?

<ब्लॉकक्वॉट>

क्या tcp-backlog "पूर्ण कनेक्शन कतार" का आकार है (तीन-तरफ़ा हैंडशेक पूर्ण, जो यहाँ वर्णित है) या "अपूर्ण कनेक्शन कतार"?

tcp-backlog पूर्ण कनेक्शन कतार . का आकार है . वास्तव में, Redis इस कॉन्फ़िगरेशन को listen(int s, int backlog) के दूसरे पैरामीटर के रूप में पास करता है कॉल करें।

@GuangshengZuo के पास पहले से ही इस प्रश्न का अच्छा उत्तर था। इसलिए मैं दूसरे पर ध्यान केंद्रित करूंगा।

<ब्लॉकक्वॉट>

यदि इसका अर्थ है "पूर्ण कनेक्शन कतार" तो मुझे tcp_max_syn_backlog क्यों बढ़ाना चाहिए जो अपूर्ण कनेक्शन कतार के आकार को सीमित करता है?

आपके द्वारा बताए गए दस्तावेज़ का उद्धरण:

<ब्लॉकक्वॉट>

कार्यान्वयन दो कतारों, एक SYN कतार (या अपूर्ण कनेक्शन कतार) और एक स्वीकार कतार (या पूर्ण कनेक्शन कतार) का उपयोग करता है। राज्य SYN RECEIVED में कनेक्शन SYN कतार में जोड़े जाते हैं और बाद में जब उनका राज्य ESTABLISHED में बदल जाता है, यानी जब 3-वे हैंडशेक में ACK पैकेट प्राप्त होता है, तो उन्हें स्वीकार कतार में ले जाया जाता है। जैसा कि नाम से ही स्पष्ट है, एक्सेप्ट कॉल को केवल एक्सेप्ट क्यू से कनेक्शन का उपभोग करने के लिए लागू किया जाता है। इस मामले में, सुनो syscall का बैकलॉग तर्क स्वीकार कतार के आकार को निर्धारित करता है।

हम देख सकते हैं कि आइटम complete connection queue में हैं incomplete connection queue से ले जाया जाता है

यदि आपके पास एक बड़ा somaxconn है एक छोटे से tcp_max_syn_backlog . के साथ , तो हो सकता है कि आपके पास complete connection queue . में ले जाने के लिए पर्याप्त आइटम न हों , और complete connection queue कभी भरा नहीं हो सकता। हो सकता है कि कई अनुरोधों को दूसरी कतार में ले जाने का मौका मिलने से पहले ही उन्हें पहली कतार से हटा दिया गया हो।

इसलिए केवल somaxconn का मान बढ़ाएं काम नहीं कर सकता है। आपको दोनों को ऊपर उठाना है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस पब/सब और रेडिस स्ट्रीम के बीच मुख्य अंतर क्या हैं?

  2. डोकर-लिखें:कंटेनरों के बीच रेडिस कनेक्शन से इनकार कर दिया

  3. स्वचालित विफलता के साथ रेडिस के समान, Azure के बाहर स्थानीय विंडोज़-आधारित सेवा बस कैसे बनाएं?

  4. रेडिस में सभी कुंजी कैसे प्राप्त करें

  5. स्प्रिंग-डेटा-रेडिस का उपयोग करके रेडिस मल्टी-एक्सेक को कैसे कार्यान्वित करें