Jedis क्या है और इसकी आवश्यकता क्यों है?
Jedis एक हल्की, न्यूनतम और बेहद लोकप्रिय Java लाइब्रेरी है जो Redis (Remote Dictionary Server) के साथ काम करने के लिए उपयोग की जाती है। Redis एक हाई-परफॉर्मेंस इन-मेमोरी डेटा स्टोर है जिसे अक्सर डेटाबेस, कैश और मैसेज ब्रोकर के रूप में उपयोग किया जाता है। Jedis Java एप्लिकेशन से Redis सर्वर से जुड़ने के लिए एक सरल और सहज API प्रदान करता है।
Jedis की आवश्यकता क्यों है? यदि आपका Java एप्लिकेशन कैशिंग, सेशन मैनेजमेंट, टास्क क्यू या अस्थायी डेटा स्टोर करने के लिए Redis का उपयोग करता है, तो Jedis Redis से कनेक्ट होने का सबसे सीधा और प्रभावी तरीका है। यह Redis की सभी मुख्य डेटा संरचनाओं (स्ट्रिंग्स, लिस्ट्स, सेट्स, हैशेज़, सॉर्टेड सेट्स) के साथ-साथ Pub/Sub, ट्रांज़ैक्शन और Lua स्क्रिप्ट जैसी सुविधाओं का समर्थन करता है।
Jedis अपनी सादगी और अतिरिक्त डिपेंडेंसी की कमी के लिए जाना जाता है। भारी-भरकम क्लाइंट (जैसे Lettuce) के विपरीत, Jedis को शुरू से कनेक्शन पूल कॉन्फ़िगर करने की आवश्यकता नहीं होती (हालांकि यह इसे सपोर्ट करता है), जो इसे छोटे और मध्यम प्रोजेक्ट्स के लिए आदर्श बनाता है जहां सादगी और तेज़ डेवलपमेंट महत्वपूर्ण है।
Jedis की स्थापना (Installation)
Jedis Maven Central के माध्यम से वितरित किया जाता है। अपने प्रोजेक्ट में लाइब्रेरी जोड़ने के लिए, आपको pom.xml (Maven के लिए) या build.gradle (Gradle के लिए) फ़ाइल में डिपेंडेंसी जोड़नी होगी।
Maven के माध्यम से स्थापना
अपने pom.xml में निम्नलिखित कोड जोड़ें:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.1.0</version> <!-- नवीनतम स्थिर संस्करण का उपयोग करें -->
</dependency>
Gradle के माध्यम से स्थापना
अपने build.gradle में यह लाइन जोड़ें:
implementation 'redis.clients:jedis:5.1.0'
महत्वपूर्ण: संस्करण 5.x Jedis का नवीनतम प्रमुख अपडेट है जिसमें Redis 7.x और नई सुविधाओं का समर्थन शामिल है। सभी सुधार और नई सुविधाएं पाने के लिए हमेशा नवीनतम स्थिर संस्करण का उपयोग करने की सलाह दी जाती है।
कोड उदाहरण के साथ त्वरित शुरुआत
आइए एक सरल प्रोग्राम लिखें जो Redis से कनेक्ट होता है, एक वैल्यू सेव करता है और उसे वापस पढ़ता है।
मान लें कि Redis सर्वर आपके लोकल मशीन पर स्टैंडर्ड पोर्ट 6379 पर चल रहा है।
import redis.clients.jedis.Jedis;
public class JedisQuickStart {
public static void main(String[] args) {
// 1. Redis से कनेक्शन बनाएं
// डिफ़ॉल्ट रूप से localhost:6379
try (Jedis jedis = new Jedis("localhost", 6379)) {
// 2. कनेक्शन जांचें (PING)
String response = jedis.ping();
System.out.println("Ping response: " + response); // "PONG" आना चाहिए
// 3. वैल्यू सेव करें
jedis.set("user:1000:name", "Rahul");
jedis.set("user:1000:age", "25");
// 4. वैल्यू पढ़ें
String name = jedis.get("user:1000:name");
String age = jedis.get("user:1000:age");
System.out.println("User name: " + name);
System.out.println("User age: " + age);
// 5. की के अस्तित्व की जांच करें
boolean exists = jedis.exists("user:1000:name");
System.out.println("Key exists: " + exists);
// 6. की को हटाएं
long deleted = jedis.del("user:1000:age");
System.out.println("Deleted keys: " + deleted);
}
}
}
यह उदाहरण बुनियादी कार्यों को दर्शाता है: कनेक्शन, लिखना, पढ़ना, अस्तित्व की जांच और हटाना। try-with-resources के उपयोग पर ध्यान दें — यह सुनिश्चित करता है कि उपयोग के बाद कनेक्शन बंद हो जाए।
Jedis के मुख्य तरीके (Methods)
Jedis सैकड़ों तरीके प्रदान करता है जो Redis की सभी क्षमताओं को कवर करते हैं। नीचे 10 सबसे अधिक उपयोग किए जाने वाले तरीकों का विस्तृत विवरण और उदाहरण दिए गए हैं।
1. set और get — स्ट्रिंग डेटा सेव और रिट्रीव करना
set विधि एक की-वैल्यू पेयर को Redis में सेव करती है, और get विधि उस वैल्यू को रिट्रीव करती है। यह Redis का सबसे बुनियादी ऑपरेशन है।
jedis.set("website", "example.com");
String value = jedis.get("website");
System.out.println(value); // "example.com"
2. exists — की के अस्तित्व की जांच
यह जांचता है कि कोई विशेष की Redis में मौजूद है या नहीं।
boolean isExists = jedis.exists("website");
System.out.println(isExists); // true या false
3. del — की को हटाना
एक या अधिक की को Redis से हटाता है।
long deletedCount = jedis.del("website", "tempKey");
System.out.println("Deleted " + deletedCount + " keys");
4. expire — की पर समय सीमा सेट करना
किसी की के लिए TTL (Time To Live) सेकंड में सेट करता है। इसके बाद की स्वचालित रूप से हटा दी जाएगी।
jedis.set("session:123", "active");
jedis.expire("session:123", 3600); // 1 घंटे में समाप्त हो जाएगा
5. ttl — शेष समय जांचना
किसी की के शेष जीवनकाल को सेकंड में लौटाता है।
long ttl = jedis.ttl("session:123");
System.out.println("Remaining TTL: " + ttl + " seconds");
6. incr और decr — संख्यात्मक मान बढ़ाना/घटाना
ये विधियां किसी की के संख्यात्मक मान को 1 से बढ़ाती या घटाती हैं। काउंटर के लिए उपयोगी।
jedis.set("counter", "10");
long newValue = jedis.incr("counter");
System.out.println(newValue); // 11
jedis.decr("counter");
System.out.println(jedis.get("counter")); // 10
7. lpush और rpop — लिस्ट ऑपरेशन
lpush लिस्ट के बाईं ओर एक तत्व जोड़ता है, और rpop दाईं ओर से तत्व निकालता है। क्यू (Queue) बनाने के लिए उपयोगी।
jedis.lpush("tasks", "task1", "task2");
String task = jedis.rpop("tasks");
System.out.println(task); // "task1"
8. hset और hget — हैश (Hash) ऑपरेशन
हैश Redis में ऑब्जेक्ट को स्टोर करने का तरीका है। hset एक फील्ड-वैल्यू पेयर सेट करता है, और hget उसे रिट्रीव करता है।
jedis.hset("user:1001", "name", "Priya");
jedis.hset("user:1001", "city", "Delhi");
String city = jedis.hget("user:1001", "city");
System.out.println(city); // "Delhi"
9. sadd और smembers — सेट (Set) ऑपरेशन
सेट अद्वितीय तत्वों का संग्रह है। sadd एक तत्व जोड़ता है, और smembers सभी तत्वों को लौटाता है।
jedis.sadd("tags:java", "spring", "hibernate", "jedis");
Set<String> tags = jedis.smembers("tags:java");
System.out.println(tags); // [spring, hibernate, jedis]
10. zadd और zrangeByScore — सॉर्टेड सेट (Sorted Set)
सॉर्टेड सेट में प्रत्येक तत्व एक स्कोर से जुड़ा होता है। zadd तत्व जोड़ता है, और zrangeByScore स्कोर रेंज के आधार पर तत्व लौटाता है।
jedis.zadd("leaderboard", 100, "Player1");
jedis.zadd("leaderboard", 200, "Player2");
Set<String> topPlayers = jedis.zrangeByScore("leaderboard", 150, 300);
System.out.println(topPlayers); // [Player2]
निष्कर्ष
Jedis Java डेवलपर्स के लिए Redis के साथ काम करने का एक शक्तिशाली और सरल तरीका है। इस गाइड में दिए गए तरीके और उदाहरण आपको अपने प्रोजेक्ट में Jedis का उपयोग शुरू करने में मदद करेंगे। अधिक जानकारी के लिए आधिकारिक Jedis दस्तावेज़ देखें।
पुस्तकालय में भी
C# (.NET) के लिए GraphQL: GraphQL.NET लाइब्रेरी की पूरी गाइड
Go (Golang) में YAML के साथ कार्य: go-yaml और yaml.v3 लाइब्रेरीज़
StackExchange.Redis C# (.NET): पूरी गाइड, उदाहरण और उपयोग