Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Dlaczego Laravel Redis::scan('*') zwraca oczekiwany klucz, a Redis::keys('*') nie?

Laravel dodaje prefiks do wszystkich utworzonych kluczy. Ten prefiks jest zdefiniowany w redis konfiguracja w database.php .

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

Nie zajrzałem jeszcze do kodu źródłowego, ale najprawdopodobniej, gdy laravel szuka kluczy, oczekuje prefiksu i dołącza go do tego, co przekazałeś do keys lub get . Więc jeśli przekazałeś keys('key_name') wyszuka prefix_key_name dlatego get zwrócono null i keys nie zwrócił mojego klucza utworzonego za pomocą Pythona, w przeciwieństwie do tego utworzonego za pomocą Laravela. Chyba scan działa trochę inaczej i zwraca wszystkie klucze niezależnie od prefiksu.

Jeśli ustawisz domyślny prefiks na null ('prefix' => env('REDIS_PREFIX', null ), Twój klucz zostanie zwrócony.

Korzystanie z get i dołącz prefiks, taki jak ten Redis::get('prefix_key_name') nie działa.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie można połączyć się z Redis o 127.0.0.1:6379:Połączenie odrzucone z homebrew

  2. Jak usunąć wszystko w Redis?

  3. dostać obiekt z redis bez oceny?

  4. Klawisze sortowania Spring Redis

  5. Dlaczego dane są przechowywane w Redis z dziwnymi kluczami podczas korzystania z Jedis z Spring Data?