PHP के लिए Redis क्लाइंट: Predis और PhpRedis – कनेक्शन और उदाहरण

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

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

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

PHP के लिए Redis क्लाइंट: Predis और PhpRedis



Redis एक उच्च-प्रदर्शन वाला की-वैल्यू डेटा स्टोर है जो रैम में काम करता है। PHP से Redis के साथ इंटरैक्ट करने के दो मुख्य तरीके हैं: शुद्ध PHP लाइब्रेरी Predis और नेटिव एक्सटेंशन PhpRedis। इस लेख में हम दोनों टूल्स, उनकी स्थापना, मुख्य कमांड और व्यावहारिक उपयोग उदाहरणों पर विस्तार से चर्चा करेंगे।



1. Predis – Pure PHP Redis क्लाइंट



Predis एक पूरी तरह से PHP में लिखी गई लाइब्रेरी है जिसमें अतिरिक्त एक्सटेंशन स्थापित करने की आवश्यकता नहीं है। यह उन वातावरणों के लिए आदर्श है जहाँ C-एक्सटेंशन कंपाइल करना संभव नहीं है।



Composer के माध्यम से स्थापना

composer require predis/predis


बेसिक कनेक्शन और उदाहरण

require 'vendor/autoload.php';

use Predis\\Client;

// डिफ़ॉल्ट कनेक्शन (localhost:6379)$redis = new Client();

// वैकल्पिक रूप से स्पष्ट पैरामीटर के साथ$redis = new Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, 'password' => 'secret', // यदि सेट है]);

// सरल स्ट्रिंग्स के साथ काम करना$redis->set('user:1:name', 'अलेक्से');echo $redis->get('user:1:name'); // अलेक्से

// लिस्ट के साथ काम करना$redis->rpush('queue:tasks', 'task1', 'task2', 'task3');$task = $redis->lpop('queue:tasks'); // task1

// हैश के साथ काम करना$redis->hset('user:1', 'email', 'alex@example.com');$redis->hset('user:1', 'age', 30);$userData = $redis->hgetall('user:1');// ['email' => 'alex@example.com', 'age' => '30']


TTL (समय-सीमा) के साथ कैशिंग

// डेटा को 1 घंटे (3600 सेकंड) के लिए सहेजें$redis->setex('weather:spb', 3600, '{"temp": 15, "humidity": 70}');

// जाँचें कि कुंजी मौजूद है या नहींif ($redis->exists('weather:spb')) { echo $redis->get('weather:spb');} else { // बाहरी API से अनुरोध और सहेजना $data = json_encode(['temp' => 15, 'humidity' => 70]); $redis->setex('weather:spb', 3600, $data);}


कार्य कतारें (लिस्ट)

// कतार में कार्य जोड़ें$redis->rpush('email:queue', json_encode([    'to' => 'user@example.com',    'subject' => 'अभिवादन',    'body' => 'स्वागत है!']));

// Worker: कार्य प्राप्त करें (ब्लॉकिंग मोड)while (true) { $taskRaw = $redis->blpop('email:queue', 5); // टाइमआउट 5 सेकंड if ($taskRaw) { $task = json_decode($taskRaw[1], true); sendEmail($task['to'], $task['subject'], $task['body']); }}


2. PhpRedis – नेटिव C-एक्सटेंशन



PhpRedis PHP के लिए C में लिखा गया एक एक्सटेंशन है। यह न्यूनतम ओवरहेड के कारण Predis की तुलना में काफी तेज़ काम करता है। इसे PECL के माध्यम से या कंपाइलेशन द्वारा स्थापित करने की आवश्यकता है।



स्थापना

# PECL के माध्यम से (अनुशंसित)pecl install redis

# या मैन्युअल रूप से (Linux)git clone https://github.com/phpredis/phpredis.gitcd phpredisphpize./configuremake && make install# php.ini में extension=redis.so जोड़ें


उपयोग के उदाहरण

// कनेक्शन$redis = new Redis();$redis->connect('127.0.0.1', 6379);$redis->auth('password'); // यदि पासवर्ड सेट है

// Set / Get$redis->set('counter', 1);$redis->incr('counter');echo $redis->get('counter'); // 2

// सेट के साथ काम करना$redis->sadd('users:online', 'user1', 'user2', 'user3');$onlineCount = $redis->scard('users:online'); // 3$isOnline = $redis->sismember('users:online', 'user2'); // true

// Pub/Sub (प्रकाशक)$redis->publish('channel:news', 'नया संदेश!');

// Pub/Sub (सब्सक्राइबर – अलग स्क्रिप्ट)$redis->subscribe(['channel:news'], function ($redis, $channel, $message) { echo "$channel से प्राप्त: $message";});


जटिल संरचनाओं की कैशिंग

// SQL क्वेरी परिणाम कैश करें$cacheKey = 'articles:l                    

अनुशंसाएँ