2013-08-25 3 views
6

मैं रेडिस पर नया हूं और मुझे लगता है कि सीखना रेडिस मूल बातें बहुत आसान है, लेकिन जब मैं समझने की कोशिश करता हूं कि मैं इसे रेल के साथ कैसे उपयोग कर सकता हूं, तो यह प्रवाह बन जाता है और मैं , किसी भी अच्छे Tutoriel जो खरोंच से चरणों का वर्णन नहीं मिल सकता है, उदाहरण के लिए मैं इस तरह कोड को खोजने:रेलों के साथ रेडिस कैसे काम करता है

class User < ActiveRecord::Base 
    # follow a user 
    def follow!(user) 
    $redis.multi do 
     $redis.sadd(self.redis_key(:following), user.id) 
     $redis.sadd(user.redis_key(:followers), self.id) 
    end 
    end 

    # unfollow a user 
    def unfollow!(user) 
    $redis.multi do 
     $redis.srem(self.redis_key(:following), user.id) 
     $redis.srem(user.redis_key(:followers), self.id) 
    end 
    end 

लेकिन इस उदाहरण के साथ, कोई अन्य उदाहरण follow विधि का उपयोग करने के लिए कैसे दिखाने के लिए, वस्तु क्या है मैं इस विधि को पास करने की आवश्यकता है (यह ऑब्जेक्ट एक रिलेशनल डेटाबेस से है या क्या) आदि ...

मेरी खोज में जो भी उदाहरण मिलते हैं, वे अपूर्ण हैं, और जब हम इसे रेल के साथ उपयोग करने का निर्णय लेते हैं तो यह रेडिस आसान नहीं होता है!

मुझे यह भी पता चलता है कि रेडिस का उपयोग उस मॉडल पर है जो ActiveRecord से प्राप्त होता है, मैं समझ नहीं पा रहा हूं: यदि रिलेशनल डेटाबेस या अकेले के साथ अधिकांश मामलों में रेडिस का उपयोग किया जाता है, और सबसे अधिक उपयोग करने का तरीका क्या है, और वास्तव में कैसे?

मुझे पता है कि मेरा प्रश्न विशाल है लेकिन मैं जो खोजता हूं वह है कि लालसा और रेल का एक साथ उपयोग कैसे करें, अगर आपके पास मेरे लिए अच्छा संसाधन है, तो मैं इसकी सराहना करता हूं। धन्यवाद

उत्तर

8

कोई अन्य उदाहरण दिखाने विधि का पालन का उपयोग कैसे करें, क्या वस्तु मैं इस विधि को पारित की जरूरत है आदि ... (एक संबंधपरक डेटाबेस? या क्या से इस वस्तु है)

उपयोगकर्ता ActiveRecord ऑब्जेक्ट्स हैं - आपके सिस्टम के आपके उपयोगकर्ता।

friend = User.find(params[:friend_id]) 
current_user.follow! friend 

आमतौर पर, रेडिस को द्वितीयक डेटास्टोर के रूप में उपयोग किया जाता है। नियमित उपयोगकर्ता डेटा, ग्राहक डेटा इत्यादि पोस्टग्रेस या MySQL में संग्रहीत है, और डेटा जो रेडिस-विशिष्ट है, को रेडिस में संग्रहीत किया जाता है।

RailsCasts 399 on autocomplete में, रयान दिखाता है कि पुस्तक स्टोर को केवल एक खोज इंजन के रूप में प्रस्तुत करने के लिए रेडिस का उपयोग कैसे करें। वह $redis.zrevrange और $redis.zincrby

+0

का उपयोग करता है यदि मैं redis में उपयोगकर्ता अनुयायियों की आईडी स्टोर करता हूं तो यहां क्या फायदा है? तो अंत में मैं अपनी जानकारी mysql/postgres से निकाल दूंगा !! – medBo

+0

लाभ आपके द्वारा अनुसरण किए जाने वाले लोगों की सूची खींचने के साथ निकटतम स्थिर समय है। लाखों पंक्तियों के साथ, इस क्वेरी को मानक डेटाबेस में लंबा समय लगेगा। –

+0

@medBo क्या यह आपके प्रश्न का उत्तर दिया? यदि ऐसा है, तो कृपया स्वीकृत के रूप में चिह्नित करें। –

संबंधित मुद्दे