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-devmacOS (Homebrew)
brew install hiredisWindows (vcpkg)
vcpkg install hiredisयदि आप स्रोत से hiredis बनाना पसंद करते हैं (उदाहरण के लिए, कस्टम कॉन्फ़िगरेशन के लिए):
git clone https://github.com/redis/hiredis.gitcd hiredismakesudo make installRedis सर्वर से कनेक्शन
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 पुस्तकालय में भी
PHP में प्राधिकरण और प्रमाणीकरण: उदाहरणों के साथ पूर्ण गाइड
Rust में gRPC: Tonic और Grpc-rs लाइब्रेरीज़ के साथ उदाहरण
Clikt: Kotlin के लिए शक्तिशाली CLI फ्रेमवर्क जिसमें घोषणात्मक सिंटैक्स है
Kotlin में क्रिप्टोग्राफी: एन्क्रिप्शन और हैशिंग