java लोलास्टिक कैश लाल कैश नोड से कनेक्ट करने के लिए जावा क्लाइंट




caching amazon-web-services (2)

क्या नोड समापन बिंदु प्रदान करके Redis कैश क्लस्टर नोड से कनेक्ट करने का कोई तरीका है? इस के लिए मुझे किस पुस्तकालय का उपयोग करना चाहिए?

इसके अलावा, कैश से सामग्री को संग्रहित और पुनर्प्राप्त करने के लिए मुझे कौन सी API का उपयोग करना चाहिए?


संक्षेप में

निर्भर करता है।

व्याख्या

आप अन्य नोड्स को भेजने के आदेश के बिना रेडिस क्लस्टर नोड्स से कनेक्ट कर सकते हैं। आपको केवल यह सुनिश्चित करना चाहिए, कि आप नोड द्वारा नियंत्रित की जाने वाली चाबियाँ एक्सेस करें। अगर आप किसी दास से जुड़ रहे हैं, तो सुनिश्चित करें कि आपका कनेक्शन READONLY मोड में है, अन्यथा दास MOVED साथ जवाब देंगे।

जावा-आधारित रीडिस क्लाइंट के बहुत सारे हैं:

निम्न स्तर

ऊँचा स्तर

  • स्प्रिंग डाटा रेडिस (ड्राइवरों के रूप में जेडीस, लेटयूस और एसआरपी का उपयोग करता है)
  • Redisson

...और बहुत सारे। आप http://redis.io/clients#java पर जावा रेडिस क्लाइंट के एक अधिक विस्तृत सूची पा सकते हैं

आपको कौन से ग्राहक चाहिए?

खैर, ये आपकी आवश्यकताओं पर निर्भर करता है। अगर आपको थोड़े समय तक कनेक्शन के लिए "सिर्फ एक ग्राहक" की आवश्यकता है, तो शायद जेडीस आपके लिए सही विकल्प है यदि आपको लचीलापन, एएससीएन प्रतिक्रियाएं और कस्टम कोडक की जरूरत है, तो सलाद के लिए आपका दोस्त हो सकता है

यदि आप जावा कलेक्शंस, लॉक और कई और अधिक के साथ सौदा करना चाहते हैं, तो स्प्रिंग डाटा रेडिस या रेडिसन पर एक नज़र डालें।

आपको कौन सी एपीआई लेनी चाहिए?

आपकी आवश्यकताओं पर भी निर्भर करता है Redis प्रोटोकॉल memcached प्रोटोकॉल की तुलना में अधिक लचीला हो सकता है क्योंकि रेडिस अधिक डेटा संरचना का समर्थन करता है।

एचटीएच, मार्क


मूल रीडिस कमांड क्लास:

import java.util.Set;
import java.util.ArrayList;
import redis.clients.jedis.Jedis;

public class RedisConnection
{
   private Jedis jedis;
   private String hostNameIp;

   public RedisConnection()
   {
      //Set hostNameIp using properties file/directly(shown below):

      this.hostNameIp="HOSTNAME_IP";
      this.jedis=new Jedis(hostNameIp);
      this.jedis=getConnection(hostNameIp);
   }

   private Jedis getConnection(String hostNameIp)
   {
      jedis.connect();

      return jedis;
   }

   public ArrayList<String> getAvailableKeys()
   {
      Set<String> dataFromRedis=jedis.keys("*");
      ArrayList<String> dataFromRedisAsArrayList=new ArrayList<String>(dataFromRedis);
      jedis.close();

      return dataFromRedisAsArrayList;
   }

   public String getValueByName(String keyName)
   {
      String valueOfKey=jedis.get(keyName);

      jedis.close();

      return valueOfKey;
   }

   public void flushAvailableKeys()
   {
      jedis.flushAll();
      jedis.close();
   }


}

विधि कॉलिंग (रेडिस से डेटा प्राप्त करना)

RedisConnection redisConnection=new RedisConnection();

ArrayList<String> dataInRedis=redisConnection.getAvailableKeys();




amazon-elasticache