PHP में कैशिंग: Redis, Memcached और APCu — पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में कैशिंग: Redis, Memcached और अन्य उपकरण



कैशिंग PHP में वेब एप्लिकेशन को गति देने के सबसे प्रभावी तरीकों में से एक है। हर बार डेटाबेस पर भारी क्वेरी चलाने या जटिल डेटा की गणना करने के बजाय, आप परिणाम को तेज़ स्टोरेज में सहेजते हैं। इस लेख में, हम PHP में मुख्य कैशिंग टूल्स पर चर्चा करेंगे: Redis, Memcached, APCu और सरल फ़ाइल कैशिंग। आप जानेंगे कि कब कौन सा टूल चुनना है और इसका सही उपयोग कैसे करना है।



कैशिंग की आवश्यकता क्यों है?

कल्पना करें कि आपकी वेबसाइट नवीनतम समाचारों की सूची दिखाती है। कैशिंग के बिना, प्रत्येक उपयोगकर्ता PHP को SQL क्वेरी चलाने, डेटा प्रोसेस करने और HTML बनाने के लिए मजबूर करता है। यदि एक मिनट में 1000 लोग साइट पर आते हैं, तो डेटाबेस पर भारी लोड पड़ता है। कैश आपको परिणाम को 5-10 मिनट तक सहेजने और तुरंत प्रदान करने की अनुमति देता है।



PHP में कैश के मुख्य उपयोग के परिदृश्य:

  • भारी SQL क्वेरी के परिणाम
  • पृष्ठों के HTML टुकड़े
  • बाहरी सेवाओं के API अनुरोधों का डेटा
  • उपयोगकर्ता सत्र
  • कॉन्फ़िगरेशन और सेटिंग्स


1. Redis — कैशिंग का राजा

Redis एक in-memory डेटा स्टोर है जो "की-वैल्यू" सिद्धांत पर काम करता है। यह जटिल डेटा संरचनाओं का समर्थन करता है: सूचियाँ, सेट, हैश टेबल। PHP के लिए लोकप्रिय एक्सटेंशन phpredis और अधिक आधुनिक लाइब्रेरी Predis है।



इंस्टॉलेशन और कनेक्शन

सर्वर पर Redis इंस्टॉल करें, फिर Composer के माध्यम से एक्सटेंशन इंस्टॉल करें:

composer require predis/predis


PHP में Redis के साथ उदाहरण

<?phprequire 'vendor/autoload.php';

use Predis\\Client;

$client = new Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379,]);

// डेटा को 10 मिनट के लिए सहेजें$client->setex('news_list', 600, json_encode($newsData));

// डेटा प्राप्त करें$cached = $client->get('news_list');if ($cached) { $newsData = json_decode($cached, true);} else { // डेटाबेस क्वेरी और कैश में सहेजना}?>


Redis के लाभ: उच्च गति (माइक्रोसेकंड), पुरानी कुंजियों का स्वचालित विलोपन (TTL), Pub/Sub का समर्थन, लेन-देन। नुकसान — यह रैम की खपत करता है।



2. Memcached — सरलता और गति

Memcached एक और in-memory स्टोर है, लेकिन Redis से सरल है। यह केवल स्ट्रिंग्स स्टोर करता है और जटिल डेटा संरचनाओं का समर्थन नहीं करता है। हालांकि, बुनियादी कैशिंग के लिए यह आदर्श है।



Memcached के साथ उदाहरण

<?php$memcached = new Memcached();$memcached->addServer('127.0.0.1', 11211);

$key = 'user_profile_123';$data = $memcached->get($key);

if ($data === false) { // कैश में डेटा नहीं है — डेटाबेस से प्राप्त करें $data = getUserProfileFromDB(123); $memcached->set($key, $data, 300); // 5 मिनट}?>


Memcached सरल get/set ऑपरेशन में Redis से तेज़ है, लेकिन कार्यक्षमता में कमतर है। यह क्वेरी परिणामों और सत्रों को कैश करने के लिए उपयुक्त है।



3. APCu — PHP स्तर पर कैश

APCu (Alternative PHP Cache) एक एक्सटेंशन है जो डेटा को सीधे PHP प्रक्रिया की मेमोरी में स्टोर करता है। इसे अलग सर्वर की आवश्यकता नहीं है, लेकिन यह केवल एक सर्वर के दायरे में काम करता है।



APCu के साथ उदाहरण

<?php// मान को 10 मिनट के लिए सहेजेंapcu_store('site_config', $config, 600);

// मान प्राप्त करें$config = apcu_fetch('site_config');if ($config === false) { // फ़ाइल से कॉन्फ़िग लोड करें $config = parse_ini_file('config.ini'); apcu_store('site_config', $config, 600);}?>


APCu कॉन्फ़िगरेशन, टेम्पलेट और छोटे डेटा को कैश करने के लिए आदर्श है जो शायद ही कभी बदलते हैं। नुकसान — PHP या वेब सर्वर को पुनरारंभ करने पर डेटा खो जाता है।



4.

अनुशंसाएँ