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.