Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Mengapa Laravel Redis::scan('*') mengembalikan kunci yang diharapkan tetapi Redis::keys('*') tidak?

Laravel menambahkan awalan ke semua kunci yang dibuat. Awalan itu didefinisikan dalam redis config di database.php .

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

Saya belum melihat kode sumbernya tetapi kemungkinan besar ketika laravel mencari kunci, ia mengharapkan awalan dan menambahkannya ke apa yang Anda berikan ke keys atau get . Jadi jika Anda melewati keys('key_name') itu akan mencari prefix_key_name itulah sebabnya get mengembalikan null dan keys tidak mengembalikan kunci saya yang dibuat melalui Python sebagai lawan dari yang dibuat melalui Laravel. Saya kira scan bekerja sedikit berbeda dan mengembalikan semua kunci terlepas dari awalannya.

Jika Anda menyetel default awalan Anda ke null ('prefix' => env('REDIS_PREFIX', null ) maka kunci Anda akan dikembalikan.

Menggunakan get dan tambahkan awalan, seperti ini Redis::get('prefix_key_name') tidak berfungsi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat terhubung ke server redis dari wadah buruh pelabuhan

  2. Komunikasi antara dua wadah Docker di macOS 10.12

  3. redis untuk masuk

  4. Simpan informasi pengguna dengan redis atau mongodb

  5. Bagaimana cara mengubah tanggal Redis di R