Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस कस्टम कमांड

नए रेडिस कमांड का उपयोग करने की प्रतीक्षा करते समय अधिकांश समय आपको ServiceStack.Redis के एक अद्यतन संस्करण की प्रतीक्षा करनी होगी। नए कमांड के लिए समर्थन जोड़ने के लिए ऐसे समय होते हैं जब रेडिस क्लाइंट रेडिस-सर्वर द्वारा समर्थित हर क्रमपरिवर्तन की पेशकश नहीं करता है।

नए Custom . के साथ और RawCommand IRedisClient पर एपीआई और IRedisNativeClient अब आप अपने स्वयं के कस्टम कमांड भेजने के लिए RedisClient का उपयोग कर सकते हैं जो एडहॉक रेडिस कमांड को कॉल कर सकते हैं:

public interface IRedisClient
{
    ...
    RedisText Custom(params object[] cmdWithArgs);
}

public interface IRedisNativeClient
{
    ...
    RedisData RawCommand(params object[] cmdWithArgs);
    RedisData RawCommand(params byte[][] cmdWithBinaryArgs);
}

ये कस्टम API एक सुविधाजनक object[] take लेते हैं तर्क जो किसी भी क्रमबद्ध मूल्य को स्वीकार करते हैं उदा। byte[] , string , int साथ ही किसी भी उपयोगकर्ता द्वारा परिभाषित जटिल प्रकार जो पारदर्शी रूप से JSON के रूप में क्रमबद्ध होते हैं और पूरे तार को UTF-8 बाइट्स के रूप में भेजते हैं।

var ret = Redis.Custom("SET", "foo", 1);          // ret.Text = "OK"

byte[] cmdSet = Commands.Set;
ret = Redis.Custom(cmdSet, "bar", "b");           // ret.Text = "OK"

ret = Redis.Custom("GET", "foo");                 // ret.Text = "1"

RedisData . पर सुविधाजनक विस्तार विधियां भी हैं और RedisText जो संरचित डेटा तक पहुंचना आसान बनाते हैं, उदा:

var ret = Redis.Custom(Commands.Keys, "*");
var keys = ret.GetResults();                      // keys = ["foo", "bar"]

ret = Redis.Custom(Commands.MGet, "foo", "bar");
var values = ret.GetResults();                    // values = ["1", "b"]

Enum.GetNames(typeof(DayOfWeek)).ToList()
    .ForEach(x => Redis.Custom(Commands.RPush, "DaysOfWeek", x));
ret = Redis.Custom(Commands.LRange, "DaysOfWeek", 1, -2);
var weekDays = ret.GetResults();      

weekDays.PrintDump(); // ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]

और कस्टम एपीआई के साथ कॉम्प्लेक्स टाइप्स का उपयोग करने वाले कुछ और उदाहरण:

var ret = Redis.Custom(Commands.Set, "foo", new Poco { Name = "Bar" }); // ret.Text = "OK"

ret = Redis.Custom(Commands.Get, "foo");          // ret.Text =  {"Name":"Bar"}
Poco dto = ret.GetResult<Poco>();

dto.Name.Print(); // Bar

इस एपीआई का उपयोग रेडिस रिएक्ट यूआई के रेडिस.जेएस जावास्क्रिप्ट क्लाइंट लाइब्रेरी में किया जाता है, जहां रेडिस सर्वर कमांड एकल सर्विसस्टैक सेवा के माध्यम से उपलब्ध कराए जाते हैं:

public object Any(CallRedis request)
{
    var args = request.Args.ToArray();
    var response = new CallRedisResponse { Result = Redis.Custom(args) };
    return response;
}

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. वर्चुअलएन्व (Django ऐप) से होस्ट, सेलेरी से सुपरवाइज़र चलाना

  2. प्रीडिस के साथ रेडिस टाइमआउट

  3. एक्सप्रेस परिवर्तन सत्र हर अनुरोध

  4. Node.js मल्टी-सर्वर क्लस्टर:ऑब्जेक्ट को कई नोड्स क्लस्टर में कैसे साझा करें

  5. अजवाइन त्रुटि :result.get time out