C++ के लिए Redis क्लाइंट: कनेक्शन, इंस्टॉलेशन और उदाहरण

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

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

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

C++ के लिए Redis क्लाइंट: hiredis के साथ काम करने की पूरी गाइड



Redis एक लोकप्रिय in-memory डेटाबेस है जिसका उपयोग कैशिंग, सत्र प्रबंधन, संदेश कतारों और कई अन्य चीजों के लिए किया जाता है। C++ एप्लिकेशन से Redis के साथ इंटरैक्ट करने के लिए कई लाइब्रेरी मौजूद हैं, लेकिन सबसे आम और विश्वसनीय hiredis है। यह न्यूनतम, तेज़ और स्थिर लाइब्रेरी एक शुद्ध C API प्रदान करती है जिसे C++ प्रोजेक्ट्स में आसानी से एकीकृत किया जा सकता है। इस लेख में, हम विस्तार से जानेंगे कि hiredis कैसे स्थापित करें, इसे प्रोजेक्ट से कैसे जोड़ें, Redis के साथ बुनियादी संचालन कैसे करें और संभावित त्रुटियों को कैसे संभालें।



hiredis क्या है?



hiredis Redis के लिए आधिकारिक C-क्लाइंट है, जिसे Redis की उसी टीम द्वारा विकसित किया गया है। यह समर्थन करता है:

  • सिंक्रोनस और एसिंक्रोनस कनेक्शन
  • कनेक्शन टूटने पर स्वचालित पुनः कनेक्शन
  • कमांड की स्ट्रीमिंग (पाइपलाइनिंग)
  • बाइनरी डेटा के साथ काम करना
  • Redis प्रोटोकॉल (RESP2 और RESP3) का पूर्ण समर्थन


हालाँकि hiredis C में लिखा गया है, यह C++ प्रोजेक्ट्स के लिए पूरी तरह उपयुक्त है: इसे RAII क्लासेस में लपेटा जा सकता है, C++11/17 के आधुनिक मुहावरों के साथ उपयोग किया जा सकता है और अन्य लाइब्रेरीज़ के साथ आसानी से जोड़ा जा सकता है।



hiredis की स्थापना



स्थापना का सबसे आसान तरीका सिस्टम पैकेज मैनेजर के माध्यम से है। विभिन्न ऑपरेटिंग सिस्टम के लिए उदाहरण:



Ubuntu / Debian

sudo apt updatesudo apt install libhiredis-dev


macOS (Homebrew)

brew install hiredis


Windows (vcpkg)

vcpkg install hiredis


यदि आप स्रोत से hiredis बनाना पसंद करते हैं (उदाहरण के लिए, कस्टम कॉन्फ़िगरेशन के लिए):

git clone https://github.com/redis/hiredis.gitcd hiredismakesudo make install


Redis सर्वर से कनेक्शन



hiredis स्थापित करने के बाद, आप इसे अपने C++ प्रोजेक्ट से जोड़ सकते हैं। सुनिश्चित करें कि कंपाइलर सेटिंग्स में हेडर फ़ाइलों और लाइब्रेरीज़ के पथ निर्दिष्ट हैं:

  • -I/usr/include (या hiredis.h का पथ)
  • लिंकिंग के लिए -lhiredis


localhost:6379 पर चल रहे Redis से कनेक्ट करने के लिए न्यूनतम कोड का उदाहरण:

#include <hiredis/hiredis.h>#include <iostream>

int main() { // Redis से कनेक्ट करें redisContext *c = redisConnect("127.0.0.1", 6379); if (c == nullptr || c->err) { if (c) { std::cerr << "कनेक्शन त्रुटि: " << c->errstr << std::endl; redisFree(c); } else { std::cerr << "संदर्भ के लिए मेमोरी आवंटित करने में विफल" << std::endl; } return 1; } std::cout << "Redis से कनेक्शन स्थापित!" << std::endl;

// संसाधन मुक्त करें redisFree(c); return 0;}


कमांड भेजना और उत्तर प्राप्त करना



hiredis कमांड भेजने के लिए redisCommand फ़ंक्शन प्रदान करता है। यह redisReply पर एक पॉइंटर लौटाता है, जिसमें निष्पादन का परिणाम होता है। हमेशा जाँचें कि उत्तर nullptr नहीं है, और उपयोग के बाद मेमोरी मुक्त करें।



आइए बुनियादी संचालन देखें: स्ट्रिंग मान सेट करना और प्राप्त करना।



#include <hiredis/hiredis.h>#include <iostream>#include <string>

int main() { redisContext *c = redisConnect("127.0.0.1", 6379); if (!c || c->err) { std::cerr << "कनेक्शन त्रुटि: " << (c ? c->errstr : "null") << std::endl; return 1; }

// "myname" कुंजी को "C++ Developer" मान के साथ सेट करें redisReply *reply = (redisReply*)redisCommand(c, "SET myname 'C++ Developer'"); if (reply == nullptr) { std::cerr << "SET कमांड निष्पादित करने में त्रुटि" << std::endl; redisFree(c); return

अनुशंसाएँ