Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> डेटाबेस

रेडिस के साथ शुरुआत करना

रेडिस के साथ शुरुआत करना

रेडिस की गति और लचीलापन इसे डेवलपर्स के लिए एक अत्यंत शक्तिशाली उपकरण बनाता है और इसका उपयोग विभिन्न तरीकों से किया जा सकता है। हालांकि रेडिस को अक्सर की-वैल्यू स्टोर के रूप में संदर्भित किया जाता है, इसे डेटा संरचना सर्वर के रूप में बेहतर तरीके से वर्णित किया जाता है, क्योंकि यह 5 अलग-अलग डेटा संरचना प्रकारों का भी समर्थन करता है, अर्थात्:

  • स्ट्रिंग्स
  • हैश
  • सूचियां
  • सेट
  • सॉर्ट किए गए सेट

प्रत्येक संरचना प्रकार में साझा कमांड के साथ-साथ कुछ कमांड भी होते हैं जो एक विशेष संरचना प्रकार के लिए विशिष्ट होते हैं।

यह परिचय रेडिस का उपयोग करने की मूल बातें और विभिन्न डेटा संरचनाओं के अवलोकन को कवर करेगा। हम कुछ अधिक बुनियादी आदेशों को शामिल करेंगे, हालांकि ध्यान रखें कि रेडिस के लेखन के समय 160 से अधिक हैं और आप redis.io/commands पर उत्कृष्ट दस्तावेज़ीकरण पा सकते हैं।

Redis शुरू करना

Redis के लिए ObjectRocket द्वारा प्रदान किए गए इंस्टेंस का उपयोग करें या स्थानीय रूप से Redis इंस्टॉल करें।

स्थानीय रूप से स्थापित करने के लिए, कोड डाउनलोड करें, निकालें और संकलित करें:

$ wget https://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

स्थानीय उदाहरण प्रारंभ करें:

$ src/redis-server

Redis का उपयोग करना

अब आप बिल्ट-इन क्लाइंट का उपयोग करके रेडिस के साथ बातचीत करने के लिए तैयार हैं। रेडिस इंस्टेंस के लिए ऑब्जेक्ट रॉकेट के लिए होस्टनाम, पोर्ट और पासवर्ड के साथ रेडिस-क्ली शुरू करें:

$ redis-cli -h my-host -p 1234 -a mypassword

यदि आप स्थानीय इंस्टेंस का उपयोग कर रहे हैं, तो होस्ट लोकलहोस्ट है, डिफ़ॉल्ट पोर्ट 6379 है, और डिफ़ॉल्ट रूप से कोई पासवर्ड नहीं है।

$ redis-cli

प्राप्त करें और सेट करें

सबसे सरल स्तर पर, रेडिस को की-वैल्यू स्टोर के रूप में वर्णित किया जा सकता है। SET foo bar कमांड जारी करके आप foo का मान बार पर सेट करते हैं। उदाहरण के लिए, रेडिस-क्ली से निम्न कमांड जारी करें जिसे आपने अभी शुरू किया है:

redis> SET foo bar
OK

अब GET कमांड के साथ foo का मान पढ़ें।

redis> GET foo
"bar"

EXPIRE और TTL

आप EXPIRE कमांड का उपयोग करके दिए गए समय में कुंजियों को समाप्त होने के लिए सेट कर सकते हैं। टीटीएल कुंजी समाप्त होने से पहले शेष समय की रिपोर्ट करता है।

redis> SET foo bar
OK
redis> EXPIRE foo 120
(integer) 1
redis> TTL foo
(integer) 113

सूचियां

रेडिस की विशिष्ट विशेषताओं में से एक यह है कि एक कुंजी के मूल्य केवल मूल्यों के बजाय डेटा-संरचनाएं हो सकते हैं।

सूची बनाने के लिए LPUSH या RPUSH का उपयोग करें। यदि कोई सूची पहले से मौजूद है, तो LPUSH दिए गए मान को सूची की शुरुआत में जोड़ देगा और RPUSH इसे अंत में जोड़ देगा।

redis> LPUSH cities "San Francisco"
(integer) 1
redis> RPUSH cities "Austin"
(integer) 2
redis> LRANGE cities 0 -1
1. "San Francisco"
2. "Austin"
redis> SORT cities alpha
1. "Austin"
2. "San Francisco"
redis> LPOP cities
"San Francisco"
redis> LRANGE cities 0 -1
1. "Austin"

SORT कमांड अल्फा तर्क के साथ सूची को आरोही क्रम में क्रमबद्ध करता है। अवरोही क्रम में क्रमबद्ध करने के लिए, DESC तर्क को SORT कमांड में जोड़ें।

RPOP कमांड सूची के अंत से एक तत्व को पॉप करता है। एलपीओपी सूची की शुरुआत से एक तत्व को पॉप करता है।

सेट

सेट सूचियों के समान हैं, सिवाय इसके कि प्रत्येक तत्व केवल एक बार हो सकता है। नीचे दिए गए उदाहरण में हम यू.एस. राज्यों का एक छोटा समूह बनाते हैं। SADD कमांड सेट में एक आइटम जोड़ता है, जब तक कि आइटम पहले से सेट में मौजूद न हो। यदि आइटम मौजूद नहीं है, तो इसे जोड़ा जाता है और 1 वापस कर दिया जाता है; अन्यथा, 0 लौटा दिया जाता है। SMEMBERS सेट में सभी आइटम लौटाता है। SCARD सेट के तत्वों की संख्या लौटाता है। SREM किसी आइटम को सूची से हटा देता है।

redis> SADD states "Vermont"
(integer) 1
redis> SMEMBERS states
1. "Vermont"
redis> SADD states "Texas"
(integer) 1
redis> SCARD states
(integer) 2
redis> SADD states "Vermont"
(integer) 0
redis> SMEMBERS states
1. "Vermont"
2. "Texas"
redis> SADD states "California"
(integer) 1
redis> SMEMBERS states
1. "Vermont"
2. "Texas"
3. "California"
redis> SREM states "California"
(integer) 1
redis> SMEMBERS states
1. "Vermont"
2. "Texas"

हैश

हैश का उपयोग करके, आप प्रत्येक कुंजी में फ़ील्ड को स्ट्रिंग मान असाइन और मैप कर सकते हैं। कुछ क्षेत्रों के साथ एक हैश को इस तरह से संग्रहीत किया जाता है जिसमें बहुत कम जगह होती है, इसलिए आप लाखों वस्तुओं को एक छोटे रेडिस उदाहरण में संग्रहीत कर सकते हैं। नीचे दिए गए उदाहरण में, उपयोगकर्ता का नाम:1 HSET का उपयोग करके "जॉन रैकर" पर सेट है आज्ञा। उपयोगकर्ता का नाम मान प्राप्त करने के लिए HGET कमांड का उपयोग किया जाता है। HGETALL निर्दिष्ट कुंजी से संबंधित सभी कुंजी और मान लौटाता है।

redis> HSET user:1 name "john racker"
(integer) 1
redis> HGET user:1 name
"joe racker"
redis> HSET user:1 company "objectrocket"
(integer) 1
redis> HGET user:1 company
"ObjectRocket"
redis> HSET user:1 city "austin"
(integer) 1
redis> HGET user:1 city
"austin"
redis> HGETALL user:1
1. "name"
2. "john racker"
3. "company"
4. "objectrocket"
5. "city"
6. "austin"

सॉर्ट किए गए सेट

सॉर्ट किए गए सेट सेट के समान होते हैं, जिसमें वे स्ट्रिंग्स के गैर-दोहराए जाने वाले संग्रह होते हैं, हालांकि प्रत्येक सदस्य एक स्कोर से जुड़ा होता है। क्रमबद्ध सेटों को उनके स्कोर के अनुसार बढ़ते हुए क्रम में लगाया जाता है। एक ही तत्व केवल एक बार मौजूद होता है, किसी भी दोहराए गए तत्वों की अनुमति नहीं है, हालांकि स्कोर दोहराया जा सकता है।

इस उदाहरण में हम 10/23/2014 तक इंग्लिश प्रीमियर लीग में शीर्ष 5 टीमों के कुल अंक जोड़ देंगे:

redis> ZADD EPL 22 "chelsea"
(integer) 1
redis> ZADD EPL 17 "man city"
(integer) 1
redis> ZADD EPL 16 "southampton"
(integer) 1
redis> ZADD EPL 13 "liverpool"
(integer) 1
redis> ZADD EPL 13 "west ham"
(integer) 1
redis> ZRANK EPL "chelsea"
(integer) 3
redis> ZRANK EPL "liverpool"
(integer) 0
redis> ZRANK EPL "arsenal"
(nil)

आगे हम ZRANGE का उपयोग करके कुल अंकों के आधार पर टीमों को रैंक करेंगे:

redis> ZRANGE EPL 0 -1
1) "liverpool"
2) "west ham"
3) "southampton"
4) "man city"
5) "chelsea"
redis> ZRANGE EPL 2 3
1) "southampton"
2) "man city"

याद रखें, सेट को आरोही क्रम में क्रमबद्ध किया जाता है, इसलिए कुल अंकों के आधार पर टीमों की रैंक देखने के लिए हमें ZREVRANGE का उपयोग करना होगा

redis> ZREVRANGE EPL 0 -1
1) "chelsea"
2) "man city"
3) "southampton"
4) "west ham"
5) "liverpool"
redis> ZREVRANGE EPL 0 -1 WITHSCORES
1) "chelsea"
2) "22"
3) "man city"
4) "17"
5) "southampton"
6) "16"
7) "west ham"
8) "13"
9) "liverpool"
10) "13"

इसके बाद, साउथेम्प्टन एक गेम खेलता है और 3 अंक प्राप्त करते हुए जीत जाता है। हम स्कोर बढ़ाने के लिए ZINCRBY का उपयोग करते हैं, और ZREVRANGE यह देखने के लिए कि साउथेम्प्टन लीग में दूसरे स्थान पर कैसे चला गया है। साउथेम्प्टन की रैंक देखने के लिए हम ZREVRANK का भी उपयोग कर सकते हैं। नोट:रैंक 0-आधारित है, जिसका अर्थ है कि उच्चतम स्कोर (चेल्सी) वाले सदस्य की रैंक 0 है।

redis> ZINCRBY EPL 3 "southampton"
"19"
redis> ZREVRANGE EPL 0 -1 WITHSCORES
1) "chelsea"
2) "22"
3) "southampton"
4) "19"
5) "man city"
6) "17"
7) "west ham"
8) "13"
9) "liverpool"
10) "13"
redis> ZREVRANK EPL "southampton"
(integer) 1
redis> ZREVRANGEBYSCORE EPL 25 (15
1) "chelsea"
2) "southampton"
3) "man city"

आने वाले हफ्तों में हम इस अद्भुत बहुमुखी डेवलपर टूल के लिए रेडिस और कुछ उपयोग के मामलों में गहराई से उतरेंगे। यदि आपके पास रेडिस चलाने के बारे में कोई प्रश्न हैं या आप हमें बताना चाहते हैं कि आप अपने एप्लिकेशन स्टैक में रेडिस का उपयोग कैसे कर रहे हैं, तो कृपया हमें एक पंक्ति दें।


  1. हाउ-टू हॉलिडे गाइड:सर्फेस पेन के साथ शुरुआत करना

    आपको क्रिसमस के लिए एक नया सरफेस मिला है - या आपने अपनी इच्छा सूची में एक डाल दिया है और बड़े दिन के लिए तैयार रहना चाहते हैं - और अब आप सरफेस पेन के साथ शुरुआत करना चाहते हैं। सरफेस पेन, सरफेस रेंज के लिए माइक्रोसॉफ्ट का डिजिटल स्टाइलस एक्सेसरी है जो समर्पित आंतरिक हार्डवेयर का उपयोग करके एक अत्यंत

  1. वेब के लिए Android संदेशों के साथ आरंभ करना

    Google एक विशाल मंच है और इसमें कोई संदेह नहीं है! लेकिन सबसे अच्छे सर्च इंजनों में से एक होने के अलावा, यह हमें कई तरह की सेवाएं भी प्रदान करता है जो हमारे दैनिक जीवन को आसान बनाती हैं। Google ने हाल ही में Android संदेश ऐप के लिए एक अपडेट जारी किया है जो आपको किसी भी वेब ब्राउज़र से पाठ संदेश भेजन

  1. Xen वर्चुअलाइजेशन के साथ शुरुआत करना

    ज़ेन, Z के साथ वर्तनी, आठ घंटे तक पकड़े रहने के बाद बर्फ में पेशाब करते समय आपके सिर के मुकुट पर सर्वोत्कृष्ट अनुभूति होती है। Xen, X के साथ वर्तनी, एक ओपन-सोर्स वर्चुअलाइजेशन तकनीक है जिसे आप अपने सेटअप के लिए विचार कर सकते हैं, चाहे घर या व्यवसाय में, हालांकि, KVM की तरह, यह कॉर्पोरेट बाजार में अध