sql >> Database >  >> NoSQL >> Redis

Waarom retourneert Laravel Redis::scan('*') een verwachte sleutel, maar Redis::keys('*') niet?

Laravel voegt een voorvoegsel toe aan alle gemaakte sleutels. Dat voorvoegsel wordt gedefinieerd in de redis config in database.php .

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

Ik heb nog niet naar de broncode gekeken, maar wanneer laravel naar sleutels zoekt, verwacht het waarschijnlijk het voorvoegsel en voegt dat toe aan wat je hebt doorgegeven aan keys of get . Dus als je keys('key_name') het zoekt naar prefix_key_name daarom get null geretourneerd en keys heeft mijn sleutel die via Python is gemaakt niet geretourneerd, in tegenstelling tot de sleutel die via Laravel is gemaakt. Ik denk dat scan werkt een beetje anders en geeft alle sleutels terug, ongeacht het voorvoegsel.

Als u de standaard van uw prefix instelt op null ('prefix' => env('REDIS_PREFIX', null ) dan wordt uw sleutel teruggegeven.

Met behulp van get en voeg het voorvoegsel toe, zoals dit Redis::get('prefix_key_name') werkt niet.




  1. Hoe converteer ik een eigenschap in MongoDB van tekst naar datumtype?

  2. Vind documenten waarvan het arrayveld ten minste n elementen van een bepaalde array bevat

  3. Zijn er tools om de indexgrootte in MongoDB te schatten?

  4. Mongoose limiet/offset en telling query