sql >> Database teknologi >  >> NoSQL >> Redis

Hvorfor returnerer Laravel Redis::scan('*') en forventet nøgle, men Redis::keys('*') gør det ikke?

Laravel tilføjer et præfiks til alle oprettede nøgler. Det præfiks er defineret i redis config i database.php .

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

Jeg har ikke kigget på kildekoden endnu, men højst sandsynligt, når laravel leder efter nøgler, forventer den præfikset og tilføjer det til det, du sendte til keys eller get . Så hvis du har bestået keys('key_name') den vil søge efter prefix_key_name derfor get returnerede null og keys returnerede ikke min nøgle oprettet via Python i modsætning til den, der blev oprettet via Laravel. Jeg gætter på scan fungerer lidt anderledes og returnerer alle nøgler uanset dets præfiks.

Hvis du indstiller standarden for dit præfiks til null ('prefix' => env('REDIS_PREFIX', null ) så vil din nøgle blive returneret.

Brug af get og tilføj præfikset som denne Redis::get('prefix_key_name') virker ikke.




  1. mongoDB adskilt og hvor i samme forespørgsel?

  2. Tving mongodb til at udsende streng JSON

  3. Hvordan laver man paginering ved hjælp af områdeforespørgsler i MongoDB?

  4. Find ud af, om en forespørgsel bruger et indeks i MongoDB