Redis
 sql >> база данни >  >> NoSQL >> Redis

Защо Laravel Redis::scan('*') връща очакван ключ, но Redis::keys('*') не?

Laravel добавя префикс към всички създадени ключове. Този префикс е дефиниран в redis config в database.php .

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

Все още не съм разгледал изходния код, но най-вероятно, когато laravel търси ключове, той очаква префикса и го добавя към това, което сте предали към keys или get . Така че, ако сте предали keys('key_name') ще търси prefix_key_name поради което get върна null и keys не върна моя ключ, създаден чрез Python, за разлика от този, създаден чрез Laravel. Предполагам scan работи малко по-различно и връща всички ключове, независимо от неговия префикс.

Ако зададете по подразбиране за вашия префикс на null ('prefix' => env('REDIS_PREFIX', null ), след което ключът ви ще бъде върнат.

Използване на get и добавете префикса, като този Redis::get('prefix_key_name') не работи.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализирайте обекта в redis с spring-data-redis

  2. Redis + Node.js - как да извлека стойностите

  3. Проблем с много вмъкване на Redis

  4. Транзакции, въведени в Redis

  5. Как да търсите стойност на съдържанието в redis от BookSleeve