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

डेटाबेस के रूप में Yii2 + रेडिस

Redis DB को कैश . के रूप में घोषित किया जा सकता है घटक या डेटाबेस कनेक्शन . के रूप में या दोनों .

जब इसे कैश . के रूप में घोषित किया जाता है घटक (yii/redis/cache का उपयोग करके ) यह उस घटक के भीतर कुंजी/मान . स्टोर करने के लिए पहुंच योग्य है जोड़े जैसा कि यहां दिखाया गया है।

$cache = Yii::$app->cache;

// try retrieving $data from cache
$data = $cache->get($key);
// store $data in cache so that it can be retrieved next time
$cache->set($key, $data);

// one more example:
$access_token = Yii::$app->security->generateRandomString();
$cache->add(
    // key
    $access_token, 
    // data (can also be an array)
    [
        'id' => Yii::$app->user->identity->id
        'name' => Yii::$app->user->identity->name
    ], 
    // expires
    60*60*3
);

साथ ही अन्य घटक session . जैसे कैशिंग प्रस्तावों के लिए इसका उपयोग करना शुरू कर सकते हैं यदि ऐसा करने के लिए कॉन्फ़िगर किया गया है या yii\web\UrlManager की तरह है जो डिफ़ॉल्ट रूप से कॉन्फ़िगरेशन फ़ाइल के cache के तहत परिभाषित किसी भी मान्य कैशिंग तंत्र में जेनरेट किए गए यूआरएल नियमों को कैश करने का प्रयास करेगा। घटक जैसा कि यहां बताया गया है। इसलिए उस स्थिति में आपके अलावा कुछ संग्रहीत डेटा मिलना सामान्य है।

जब Redis को DB कनेक्शन के रूप में घोषित किया जाता है जैसे आपके द्वारा प्रदान किए गए लिंक में जिसका अर्थ है yii\redis\Connection वर्ग का उपयोग करके आप अपने मॉडल को इसके \yii\redis\ActiveRecord वर्ग को Yii में किसी अन्य ActiveRecord मॉडल के रूप में विस्तारित कर सकते हैं। अब तक मुझे केवल इतना ही पता है कि आपको अपनी विशेषताओं को मैन्युअल रूप से परिभाषित करने की आवश्यकता है क्योंकि NoSQL डेटाबेस के लिए पार्स करने के लिए कोई DB स्कीमा नहीं है। फिर बस अपने नियमों, परिदृश्यों, संबंधों, घटनाओं, ... को किसी अन्य ActiveRecord मॉडल के रूप में परिभाषित करें:

class Customer extends \yii\redis\ActiveRecord
{
    public function attributes()
    {
        return ['id', 'name', 'address', 'registration_date'];
    }

    public function rules()
    {
        return [
            ['name', 'required'],
            ['name', 'string', 'min' => 3, 'max' => 12, 'on' => 'register'],
            ...
        ];
    }

    public function attributeLabels() {...}
    ...
}

save() . सहित सभी उपलब्ध तरीके , validate() , getErrors() , ... यहां पाया जा सकता है और किसी भी अन्य ActiveRecord वर्ग की तरह इस्तेमाल किया जाना चाहिए जैसा कि आधिकारिक गाइड में दिखाया गया है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जब हम रेल/रूबी के साथ रेडिस का उपयोग करते हैं तो नेस्ट और रेडिस-नेमस्पेस रत्नों के बीच औसत अंतर क्या होता है?

  2. ई-कॉमर्स एपीआई नोड-जेएस, टाइपस्क्रिप्ट, पोस्टग्रेएसक्यूएल, रेडिस और काफ्का के साथ बनाया गया

  3. अत्यधिक उच्च मात्रा में डेटा के लिए कौन सा NoSQL डेटाबेस

  4. मैं रेडिस में स्ट्रिंग्स कैसे खोजूं?

  5. रेडिस:सूची परिणाम का विश्लेषण कैसे करें