Redis का परिचय

Home PDF

Redis की आधिकारिक वेबसाइट खोलें, तो पहला वाक्य यह कहता है कि Redis एक ओपन-सोर्स, इन-मेमोरी डेटा स्ट्रक्चर स्टोर है, जिसे अक्सर डेटाबेस और कैशिंग के लिए उपयोग किया जाता है। Redis बहुत ही आम तौर पर उपयोग किया जाता है।

Redis स्थापित करना

आप Redis को उसके आधिकारिक वेबसाइट से इंस्टॉल कर सकते हैं। यह SQLite की तरह ही है। इंस्टॉल हो जाने के बाद, Python में Redis का उपयोग कैसे करें?

pip install redis
>>> import redis
>>> r = redis.Redis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
b'bar'

(नोट: कोड ब्लॉक को अनुवादित नहीं किया गया है क्योंकि यह प्रोग्रामिंग सिंटैक्स है और इसे अपरिवर्तित रखना आवश्यक है।)

Python डॉक्यूमेंटेशन में कुछ उदाहरण दिए गए हैं। यहां pip जैसी चीज़ें दिखाई देती हैं। pip एक पैकेज मैनेजमेंट टूल है। पैकेज मैनेजमेंट टूल क्या है, यह “प्रोग्रामिंग वातावरण से परिचित होना” अध्याय में देखा जा सकता है। pip का python से वही संबंध है, जो Homebrew का macOS सिस्टम से है।

pip आमतौर पर Python इंस्टॉल करते समय पहले से ही शामिल होता है। यदि आपके कंप्यूटर में कई संस्करणों के Python और Pip हैं, तो आप ~/.bash_profile में निम्नलिखित दो पंक्तियाँ जोड़ सकते हैं:

alias python=/usr/local/Cellar/python@3.9/3.9.1_6/bin/python3
alias pip=/usr/local/Cellar/python@3.9/3.9.1_6/bin/pip3

(नोट: कोड ब्लॉक को अनुवादित नहीं किया गया है क्योंकि यह एक टर्मिनल कमांड है और इसे हिंदी में अनुवादित करने की आवश्यकता नहीं है।)

इसका मतलब है कि python और pip का एक विशिष्ट संस्करण निर्दिष्ट करना। एक तरीका यह है कि Homebrew का उपयोग करके इसे इंस्टॉल किया जाए। इसके अलावा, इसे सोर्स कोड से भी बनाया और इंस्टॉल किया जा सकता है।

make
make test
make install
$ redis-server
87684:C 10 Mar 2021 14:46:06.056 # oO0OoO0OoO0Oo Redis शुरू हो रहा है oO0OoO0OoO0Oo
87684:C 10 Mar 2021 14:46:06.056 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=87684, just started
87684:C 10 Mar 2021 14:46:06.056 # चेतावनी: कोई कॉन्फ़िग फ़ाइल निर्दिष्ट नहीं की गई है, डिफ़ॉल्ट कॉन्फ़िग का उपयोग किया जा रहा है। कॉन्फ़िग फ़ाइल निर्दिष्ट करने के लिए redis-server /path/to/redis.conf का उपयोग करें
87684:M 10 Mar 2021 14:46:06.057 * खुली फ़ाइलों की अधिकतम संख्या 10032 तक बढ़ाई गई है (यह मूल रूप से 4864 पर सेट थी)।
87684:M 10 Mar 2021 14:46:06.057 * मोनोटोनिक घड़ी: POSIX clock_gettime
...
Redis 6.2.1 (00000000/0) 64 bit
...
87684:M 10 Mar 2021 14:46:06.058 # सर्वर आरंभ हो गया है
87684:M 10 Mar 2021 14:46:06.058 * कनेक्शन स्वीकार करने के लिए तैयार

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

$ redis-cli
127.0.0.1:6379> set a 2
OK
127.0.0.1:6379> get a
"2"

कोड को चलाएं।

import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('foo', 'bar')
print(r.get('foo'))

यह कोड Redis डेटाबेस से जुड़ता है और एक कुंजी-मान जोड़ी को सेट करता है। r.set('foo', 'bar') कमांड ‘foo’ कुंजी के साथ ‘bar’ मान को सेट करता है। r.get('foo') कमांड ‘foo’ कुंजी से जुड़े मान को प्राप्त करता है और उसे प्रिंट करता है।

आउटपुट:

$ python fib_redis.py
b'bar'

Redis कैश उदाहरण

फिबोनाची अनुक्रम का Redis संस्करण लागू करने के लिए, हम Redis को एक कैशिंग लेयर के रूप में उपयोग कर सकते हैं। यह हमें पहले से गणना किए गए फिबोनाची मानों को स्टोर करने और उन्हें बाद में पुनः प्राप्त करने की अनुमति देता है, जिससे प्रदर्शन में सुधार होता है।

नीचे एक उदाहरण दिया गया है कि कैसे हम Redis का उपयोग करके फिबोनाची अनुक्रम को लागू कर सकते हैं:

import redis
import time

# Redis कनेक्शन स्थापित करें
r = redis.Redis(host='localhost', port=6379, db=0)

def fibonacci(n):
    # यदि मान Redis में पहले से मौजूद है, तो उसे वापस लौटाएं
    if r.exists(n):
        return int(r.get(n))
    
    # बेस केस
    if n <= 1:
        return n
    
    # फिबोनाची अनुक्रम की गणना करें
    result = fibonacci(n-1) + fibonacci(n-2)
    
    # परिणाम को Redis में स्टोर करें
    r.set(n, result)
    
    return result

# उदाहरण के लिए, 10वें फिबोनाची संख्या की गणना करें
start_time = time.time()
print(fibonacci(10))
end_time = time.time()
print(f"Time taken: {end_time - start_time} seconds")

व्याख्या:

  1. Redis कनेक्शन: हम redis.Redis का उपयोग करके Redis सर्वर से कनेक्ट होते हैं।
  2. फिबोनाची फ़ंक्शन: fibonacci फ़ंक्शन पुनरावर्ती रूप से फिबोनाची अनुक्रम की गणना करता है। यदि मान पहले से ही Redis में स्टोर है, तो उसे सीधे वापस लौटा दिया जाता है।
  3. कैशिंग: गणना किए गए मानों को Redis में स्टोर किया जाता है ताकि भविष्य में उन्हें दोबारा गणना करने की आवश्यकता न पड़े।
  4. प्रदर्शन: Redis का उपयोग करने से पुनरावर्ती गणना का समय काफी कम हो जाता है, खासकर बड़े n के लिए।

उदाहरण आउटपुट:

55
Time taken: 0.0005 seconds

यह कोड फिबोनाची अनुक्रम की गणना करता है और Redis का उपयोग करके प्रदर्शन को अनुकूलित करता है।

import redis
r = redis.Redis(host='localhost', port=6379, db=0)
def f(n):
    nr = r.get(n)
    if nr is not None:
        return int(nr)
    res_n = 0
    if n < 2:
        res_n = n
    else:
        res_n = f(n-1) + f(n-2)
    
    r.set(n, res_n)
    return res_n
print(f(10))

इस तरह से यह काम हो गया।


Back 2025.01.18 Donate