पर यूआरएल मानचित्र की सेवा के लिए रेडिस का उपयोग करें। मैं एसईओ-अनुकूल यूआरएल के साथ रेडिस में एक गतिशील डेटाबेस को कुंजी और ग़लत क्वेरीस्ट्रिंग यूआरएल मान के रूप में बनाए रखना चाहता हूं। जब अनुरोध आता है, तो मैं इसे सीधे Nginx से कॉल करना चाहता हूं, ग़लत क्वेरीस्ट्रिंग यूआरएल प्राप्त करें और अपाचे के साथ सामग्री की सेवा के लिए पास करें।nginx
मैंने केवल एक फ्लैट मैप फ़ाइल रखने के बारे में सोचा है, लेकिन यह बहुत बड़ा (200,000+ प्रविष्टियां) होगा और इसे अक्सर क्रॉन नौकरी या कुछ ... अद्यतन नहीं किया जाना चाहिए।
मेरा विचार कुछ इस तरह है:
map $uri $new {
# instead of this...
# include /path/to/the/nginx_map.txt;
# I want to do this...
redis_magic_thing GET $uri;
}
मैं Nginx के लिए HttpRedis मॉड्यूल बाहर की जाँच की है, लेकिन वास्तव में उदाहरण विरल होते हैं और यह कैश की गई सामग्री तक की सेवा की दिशा में सक्षम है। मैंने Redis2 मॉड्यूल को भी चेक आउट किया है, लेकिन यह ओवरकिल जैसा लगता है। मुझे बस पुराने पुराने जीईटी कमांड करने की जरूरत है।
क्या मैं ऐसा करने के लिए HttpRedis मॉड्यूल का उपयोग कर सकता हूं और रेडिस में सही लगा सकता हूं? यदि हां, तो ऐसी कॉन्फ़िगरेशन कैसी दिखती है?
आपकी मदद के लिए अग्रिम धन्यवाद।
Nginx ईवेंट मतदान का उपयोग करता है, रेडिस एकल-थ्रेडेड है। दोनों को 100% मेमोरी होना चाहिए और वे कॉन्टैंट टाइम लुकअप हैं, लेकिन चूंकि निगेंक्स एकल-थ्रेडेड नहीं है, इसलिए मैं कहूंगा कि यदि आप 20k आरपीएस से आगे जाना चाहते हैं तो रेडिस का उपयोग करने से यह बहुत तेज़ होगा। इसलिए यदि आपका डेटा बार-बार नहीं बदलता है और आपके पास अपाचे में यूआरएल मैपिंग को संभालने का कोई अच्छा कारण नहीं है तो मैं सुझाव देता हूं कि मैप को फ़ाइल में डंप करने का प्रयास करें और अपडेट के बाद nginx config को पुनः लोड करने के लिए इनोटिफ़ाई का उपयोग करें। – ColinM