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

Laravel Redis::scan('*') अपेक्षित कुंजी क्यों लौटा रहा है लेकिन Redis::keys('*') नहीं है?

Laravel बनाई गई सभी कुंजियों में एक उपसर्ग जोड़ता है। उस उपसर्ग को redis . में परिभाषित किया गया है database.php में कॉन्फिग करें ।

'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),

मैंने अभी तक स्रोत कोड को नहीं देखा है, लेकिन सबसे अधिक संभावना है कि जब लारवेल चाबियों की तलाश करता है तो यह उपसर्ग की अपेक्षा करता है और इसे जोड़ता है जिसे आपने keys में पास किया है। या get . तो अगर आपने keys('key_name') . पास किया है यह prefix_key_name को खोजेगा यही कारण है कि get लौटा null और keys लैरावेल के माध्यम से बनाए गए एक के विपरीत पाइथन के माध्यम से बनाई गई मेरी कुंजी वापस नहीं की। मुझे लगता है scan थोड़ा अलग तरीके से काम करता है और इसके उपसर्ग की परवाह किए बिना सभी कुंजियाँ लौटाता है।

यदि आप अपने उपसर्ग के डिफ़ॉल्ट को शून्य पर सेट करते हैं ('prefix' => env('REDIS_PREFIX', null ) तो आपकी कुंजी वापस कर दी जाएगी।

get . का उपयोग करना और उपसर्ग जोड़ें, इस तरह Redis::get('prefix_key_name') काम नहीं करता।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. LRU समाप्ति के साथ इन-मेमोरी कैश

  2. रेडिस इंस्टेंस संस्करण की जांच कैसे करें?

  3. रेडिस मल्टी इंसर्ट इश्यू

  4. रेडिस के लिए पासवर्ड कैसे सेट करें?

  5. Redis . में फ़िल्टरिंग तत्व