Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Tại sao Laravel Redis ::scan ('*') trả về khóa mong đợi nhưng Redis ::key ('*') thì không?

Laravel thêm tiền tố vào tất cả các khóa được tạo. Tiền tố đó được xác định trong redis cấu hình trong database.php .

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

Tôi chưa xem mã nguồn nhưng rất có thể khi laravel tìm kiếm các khóa, nó sẽ yêu cầu tiền tố và gắn nó vào những gì bạn đã chuyển cho các khóa keys hoặc get . Vì vậy, nếu bạn đã chuyển keys('key_name') nó sẽ tìm kiếm prefix_key_name đó là lý do tại sao get trả về null và các khóa keys đã không trả lại khóa của tôi được tạo qua Python trái ngược với khóa được tạo qua Laravel. Tôi đoán là scan hoạt động hơi khác một chút và trả về tất cả các khóa bất kể tiền tố của nó là gì.

Nếu bạn đặt giá trị mặc định của tiền tố thành null ('prefix' => env('REDIS_PREFIX', null ) thì chìa khóa của bạn sẽ được trả lại.

Sử dụng get và thêm tiền tố, như sau Redis::get('prefix_key_name') không hoạt động.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Laravel tất cả các ID phiên với trình điều khiển Redis

  2. Giao dịch Redis

  3. Sử dụng Redis Object Cache để tăng tốc cài đặt WordPress của bạn

  4. Azure Redis Cache - Nhiều lỗi TimeoutException:Timeout thực hiện GET {key}

  5. Lỗi khi tải thư viện được chia sẻ, không thể mở tệp đối tượng được chia sẻ:Không có tệp hoặc thư mục như vậy (Rentis)