Redis Java क्लाइंट: Jedis, Lettuce और Redisson - पूरी गाइड

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

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

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

Redis Java क्लाइंट: लोकप्रिय लाइब्रेरीज़ की समीक्षा

Redis एक हाई-परफॉर्मेंस की-वैल्यू डेटा स्टोर है, जिसका उपयोग कैशिंग, सेशन, क्यू और real-time एनालिटिक्स के लिए व्यापक रूप से किया जाता है। Java से Redis के साथ काम करने के लिए कई परिपक्व क्लाइंट लाइब्रेरीज़ मौजूद हैं। इस लेख में हम तीन सबसे लोकप्रिय क्लाइंट: Jedis, Lettuce और Redisson पर चर्चा करेंगे। प्रत्येक की अपनी विशेषताएं, फायदे और उपयोग के परिदृश्य हैं।

1. Jedis — सरल और हल्का क्लाइंट

Jedis एक न्यूनतम सिंक्रोनस Redis क्लाइंट है। यह सीखने में आसान है और छोटे प्रोजेक्ट्स और माइक्रोसर्विसेज के लिए उपयुक्त है जहां एसिंक्रोनस की आवश्यकता नहीं है।

Jedis की विशेषताएं:

  • सिंक्रोनस API (ब्लॉकिंग कॉल्स)।
  • कनेक्शन पूल सपोर्ट (JedisPool)।
  • Redis कमांड का पूर्ण समर्थन।
  • एसिंक्रोनस या रिएक्टिव ऑपरेशन का समर्थन नहीं करता।

कनेक्शन और बुनियादी ऑपरेशन का उदाहरण:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

public class JedisExample {
    public static void main(String[] args) {
        // कनेक्शन पूल बनाएं
        try (JedisPool pool = new JedisPool("localhost", 6379);
             Jedis jedis = pool.getResource()) {

            // वैल्यू सेट और गेट करें
            jedis.set("user:100", "Alice");
            String value = jedis.get("user:100");
            System.out.println("Value: " + value); // आउटपुट: Alice

            // लिस्ट के साथ काम करें
            jedis.lpush("queue", "task1");
            jedis.lpush("queue", "task2");
            String task = jedis.rpop("queue");
            System.out.println("Task from queue: " + task); // आउटपुट: task1
        }
    }
}

Jedis कब चुनें:

  • सरल प्रोजेक्ट जिसमें रिएक्टिव की जरूरत नहीं।
  • न्यूनतम डिपेंडेंसी चाहिए (एक jar फ़ाइल)।
  • क्लासिक ब्लॉकिंग ऑपरेशन के लिए।

2. Lettuce — एसिंक्रोनस और रिएक्टिव क्लाइंट

Lettuce एक आधुनिक क्लाइंट है जो Netty पर आधारित है। यह सिंक्रोनस, एसिंक्रोनस और रिएक्टिव (Reactive Streams) API को सपोर्ट करता है। यह हाई-लोड सिस्टम के लिए बेहतरीन है।

Lettuce की विशेषताएं:

  • एसिंक्रोनस और रिएक्टिव API (Project Reactor पर आधारित)।
  • Redis क्लस्टर, Sentinel, SSL सपोर्ट।
  • नॉन-ब्लॉकिंग ऑपरेशन — उच्च थ्रूपुट।
  • Redis Pub/Sub, Streams, Transactions सपोर्ट।

एसिंक्रोनस उपयोग का उदाहरण:

import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.async.RedisAsyncCommands;

public class LettuceAsyncExample {
    public static void main(String[] args) {
        RedisClient client = RedisClient.create("redis://localhost:6379");
        try (StatefulRedisConnection<String, String> connection = client.connect()) {
            RedisAsyncCommands<String, String> async = connection.async();

            // एसिंक्रोनस सेट
            async.set("key:1", "Hello, Lettuce!");

            // एसिंक्रोनस गेट कॉलबैक के साथ
            async.get("key:1").thenAccept(value -> 
                System.out.println("Received: " + value)
            );

            // एसिंक्रोनस ऑपरेशन पूरा होने के लिए थोड़ी देर
            try { Thread.sleep(100); } catch (InterruptedException e) { }
        }
        client.shutdown();
    }
}

Lettuce कब चुनें:

  • हाई-लोड सिस्टम जहां बहुत सारे रिक्वेस्ट हों।
  • एसिंक्रोनस या रिएक्टिव प्रोग्रामिंग की आवश्यकता।
  • Redis क्लस्टर या Sentinel के साथ काम करना।

3. Redisson — उन्नत सुविधाओं वाला क्लाइंट

Redisson सिर्फ एक क्लाइंट नहीं, बल्कि Redis के साथ काम करने के लिए एक पूर्ण फ्रेमवर्क है। यह Java ऑब्जेक्ट्स (Distributed Map, Lock, Queue, Topic) प्रदान करता है।

अनुशंसाएँ