लुआ स्क्रिप्ट पूरी रेडिस सर्वर को कैसे अवरुद्ध करती है? [डुप्लीकेट]

Dec 25 2020

मान लीजिए कि मेरे पास एक Redis इंस्टेंस चल रहा है और मेरे पास इससे जुड़े दो ग्राहक A और B हैं। मैं उनमें से एक से एक केवल पढ़ने वाली LUA स्क्रिप्ट को निष्पादित करता हूं और दूसरे से जावा में रेडिस टेम्पलेट का उपयोग करके केवल एक रीड हैश ऑपरेशन करता हूं। चूंकि रेडिस के सभी ऑपरेशन अवरुद्ध हैं, इसलिए मैं मानता हूं कि यदि एलयूए स्क्रिप्ट पहले जारी की जाती है, तो दूसरे क्लाइंट को तब तक इंतजार करना होगा जब तक कि एलुआ स्क्रिप्ट ऑपरेशन समाप्त नहीं हो जाता। उसी तरह, यदि हैश ऑपरेशन पहले जारी किया जाता है, तो लूआ स्क्रिप्ट ऑपरेशन को तब तक इंतजार करना पड़ता है जब तक हैश ऑपरेशन समाप्त नहीं हो जाता। क्या यह एक मान्य कथन है? यदि यह एकल पिरोया हुआ है तो Redis कई स्रोतों से कॉल कैसे संभालता है?

जवाब

GuyKorland Dec 27 2020 at 02:29

Redis में आंतरिक आंतरिक लूप होता है जो अधिक विवरण के लिए हर बार मुख्य थ्रेड पर एक ईवेंट चलाता है:

  1. https://redis.io/topics/internals-rediseventlib
  2. http://nosqlgeek.blogspot.com/2019/10/so-what-exactly-is-event-loop.html