sql >> データベース >  >> NoSQL >> Redis

Laravel Redis ::scan('*')が期待されるキーを返すのに、Redis ::keys(' *')が返さないのはなぜですか?

    Laravelは、作成されたすべてのキーにプレフィックスを追加します。そのプレフィックスはredisで定義されています 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 Laravelで作成したキーとは対照的に、Pythonで作成したキーを返しませんでした。 scanだと思います 動作が少し異なり、プレフィックスに関係なくすべてのキーを返します。

    プレフィックスのデフォルトをnullに設定した場合('prefix' => env('REDIS_PREFIX', null )その後、キーが返されます。

    getを使用する このようにプレフィックスを追加しますRedis::get('prefix_key_name') 動作しません。




    1. MongoDBelemmatch配列内の複数の要素

    2. イニシャライザでのcache_storeの設定

    3. $ unionWith –MongoDBのUNIONALLに相当

    4. ClusterControl 1.7.1の発表:PostgreSQL11とMongoDB4.0のサポート、拡張モニタリング