मैं रेडिस को देख रहा हूं। यह बहुत दिलचस्प लग रहा है। लेकिन व्यावहारिक परिप्रेक्ष्य से, माईएसक्यूएल पर रेडिस का उपयोग करना बेहतर होगा?PHP अनुप्रयोगों के लिए MySQL के बजाय Redis का उपयोग कब करें?
उत्तर
संपूर्ण नोएसक्यूएल बनाम एसक्यूएल बहस को अनदेखा करते हुए, मुझे लगता है कि सबसे अच्छा तरीका उन्हें गठबंधन करना है। दूसरे शब्दों में, सिस्टम के कुछ हिस्सों (जटिल लुकअप, लेनदेन) और दूसरों के लिए रेडिस (प्रदर्शन, काउंटर इत्यादि) के लिए MySQL का उपयोग करें।
मेरे अनुभव में, स्केलेबिलिटी (उपयोगकर्ताओं के बहुत सारे ...) से संबंधित प्रदर्शन मुद्दे अंततः आपको MySQL सर्वर से लोड हटाने के लिए किसी प्रकार का कैश जोड़ने के लिए मजबूर करता है और predis/memcache आदि उस पर बहुत अच्छा है।
मैं कोई रेडिस विशेषज्ञ नहीं हूं, लेकिन जो मैंने एकत्र किया है, दोनों बहुत अलग हैं। Redis:
- एक संबंधपरक डेटाबेस (कोई फैंसी डेटा संगठन) नहीं है
- स्टोर स्मृति में सब कुछ (तेज, कम जगह, शायद कम सुरक्षित एक दुर्घटना के मामले में)
- कम व्यापक रूप से विभिन्न पर तैनात है webhosts (आप अपने आप को होस्टिंग अगर नहीं कर रहे हैं)
मुझे लगता है कि आप जब आप डेटा की एक छोटी-ish मात्रा कि रिलेशनल संरचना है कि MySQL प्रदान करता है की जरूरत नहीं है के लिए Redis उपयोग करने के लिए चाहते हो सकता है, और तेजी से की आवश्यकता है पहुंच। यह उदाहरण के लिए गतिशील वेब इंटरफ़ेस में सत्र डेटा हो सकता है जिसे अक्सर और तेज़ी से एक्सेस करने की आवश्यकता होती है।
रेडिस को कुछ माईएसQL डेटा के लिए कैश के रूप में भी इस्तेमाल किया जा सकता है जिसे अक्सर एक्सेस किया जा रहा है (यानी: उपयोगकर्ता लॉग इन करते समय इसे लोड करें)।
मुझे लगता है कि आप सवाल पूछ रहे हैं गलत तरीके से चारों ओर, आप अपने आप से पूछना चाहिए जो एक जो की तुलना में आवेदन के लिए एक प्रणाली के लिए अनुकूल है, और अधिक एक आवेदन के लिए अनुकूल है बल्कि;)
धन्यवाद - शायद मैं सवाल गलत तरीके से पूछ रहा हूं, लेकिन अगर मुझे समझ में नहीं आता कि जब MySQL से रेडिस का उपयोग करना अधिक उचित है, तो मैं किसी भी प्रश्न का उत्तर नहीं दे सकता! –
MySQL एक संबंधपरक डेटा है दुकान। यदि कॉन्फ़िगर किया गया है (उदा। innodb तालिकाओं का उपयोग करके), MySQL विश्वसनीय डेटा-स्टोर ACID लेन-देन की पेशकश करता है।
रेडिस एक नोएसक्यूएल डेटाबेस है। (- धीरे - SETNX साथ जो अनुमान लगाया जा सकता) यह तेजी से (प्रयुक्त यदि सही ढंग से) यह कारोबार क्योंकि विश्वसनीयता के साथ गति (यह के रूप में इस नाटकीय रूप से प्रदर्शन दर्द होता है fsync साथ चलाने के लिए दुर्लभ है) और लेन-देन है।
Redis has some very neat features जैसे सेट, सूचियां और क्रमबद्ध सूचियां।
These slides on Redis सूची आंकड़े एकत्रण और सत्र प्रबंधन उदाहरण के रूप में। एक उदाहरण के रूप में रेडिस के साथ लिखे गए क्लोन भी हैं, लेकिन इसका मतलब यह नहीं है कि ट्विटर का उपयोग रेडिस (twitter use भारी मेमकेच कैशिंग के साथ MySQL) का उपयोग नहीं करता है।
MySql -
1) संरचित डेटा 2) एसिड 3) भारी लेनदेन और लुकअप।
Redis -
1) गैर संरचित डेटा 2) सरल और त्वरित लुकअप। उदाहरण के लिए - एक सत्र के टोकन 3) इसे कैशिंग परत के लिए उपयोग करें।
- 1. PHP अनुप्रयोगों में MySQL दृश्यों का उपयोग
- 2. एक कुंजी/मूल्य स्टोर का उपयोग कब करें जैसे कि Redis के बजाय/SQL डेटाबेस के साथ?
- 3. SFINAE के बजाय `static_assert` का उपयोग कब करें?
- 4. रूबी में हैश के बजाय स्ट्रक्चर का उपयोग कब करें?
- 5. 'मज़ेदार' के बजाय 'फ़ंक्शन' का उपयोग कब करें?
- 6. गुणों के बजाय गुणों का उपयोग कब करें?
- 7. और x के बजाय पता (x) का उपयोग कब करें?
- 8. ImageView के बजाय ImageButton का उपयोग कब करें?
- 9. विरासत के बजाय प्रतिनिधिमंडल का उपयोग कब करें?
- 10. PHP php फ़ंक्शंस में निर्मित के बजाय filter_var का उपयोग करने के लिए
- 11. सादा MySQL के बजाय ROLAP का उपयोग क्यों करें?
- 12. क्या मुझे MySQL के बजाय NoSQL का उपयोग करना चाहिए?
- 13. phpMyAdmin Redis के लिए MySQL के बराबर है?
- 14. PHP में विनाशक का उपयोग कब करें?
- 15. लॉगिंग के लिए redis
- 16. PHP पर एमवीसी का उपयोग कब करें?
- 17. मुझे हैश के बजाय ओपनस्ट्रक्चर का उपयोग कब करना चाहिए?
- 18. प्रत्येक के लिए कब उपयोग करें और xslt में लागू-टेम्पलेट्स का उपयोग कब करें?
- 19. एरलांग/ओटीपी अनुप्रयोगों में gen_server का उपयोग कब करें
- 20. मुझे इनलाइन के बजाय __forceinline का उपयोग कब करना चाहिए?
- 21. मुझे UIImagePickerControllerSourceTypePhotoLibrary का उपयोग UIImagePickerControllerSourceTypeSavedPhotosAlbum के बजाय कब करना चाहिए?
- 22. स्ट्रिंगस्ट्रीम के बजाय स्ट्रिंग का उपयोग कब करना चाहिए?
- 23. मुझे fprintf के बजाय fputs का उपयोग कब करना चाहिए?
- 24. उपयोग करने के लिए() बनाम 'as' का उपयोग कब करें?
- 25. Web.Caching.Cache की बजाय HttpAplicationState का उपयोग कब करें?
- 26. रूबी बनाम कब उपयोग करें PHP
- 27. पारंपरिक अनुप्रयोगों पर मैं PowerShell का उपयोग कब करूं?
- 28. redis: redis
- 29. PHP में गूंजने के बजाय मुझे प्रिंट का उपयोग कब करना चाहिए?
- 30. मुझे PHP (या इसके विपरीत) के बजाय पर्ल सीजीआई का उपयोग कब करना चाहिए?
क्या आपने इसे पढ़ा है: http://www.mysqlperformanceblog.com/2009/08/27/looking-at-redis/? मैं सब समझ नहीं पा रहा हूं (मैं फ्रेंच हूं) लेकिन यह दिलचस्प लगता है। – MatTheCat
धन्यवाद। हाँ यह दिलचस्प है। हालांकि मैं अभी भी व्यावहारिक अनुप्रयोगों के बारे में निश्चित नहीं हूं। –
संबंधित लेकिन कोई बनाम MySQL विशिष्ट नहीं: http://stackoverflow.com/questions/7888880/what-is-redis-and-what-do-i-use-it-for?rq=1 –