lundi 24 juin 2019

Configuring Redis as Cache interface in a Laravel 5 Application

I have a Laravel application that I am integrating a Redis Server into to handle the application caching. However I am having issues with the Redis configuration, as I am not able to access the Redis interface using the Laravel cache facade.

I set up a redis-server and comfirmed that it is working on the server:

> redis-cli
127.0.0.1:6379 > ping
PONG

I then followed the integration documentation for Redis/Laravel from here: https://laravel.com/docs/5.7/redis

I installed the composer predis/predis package...
I set it up in Laravel to use the default redis config:

app/config/cache.php:

'default' => env('CACHE_DRIVER', 'redis'),

app/config/database.php:

'redis' => [

    'client' => 'predis',

    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
    ],
]


Now when I test I can access Redis via the Redis Facade...

use Illuminate\Support\Facades\Redis;

...but not from the Cache Facade.

use Illuminate\Support\Facades\Cache;

    // ************* this works
    Redis::set('testFromRedisSet', 'RedisSet');

    // ************* none of these work...
    Cache::add('testFromCachePut', 'CachePut', 60);
    Cache::remember('testFromCacheRemember', 60, function() {
       return "CacheRemember"; 
    });
    Cache::rememberForever('testFromCacheRememberForever', function() {
        return "CacheRememberForever";
    });

127.0.0.1:6379> KEYS '*'
1) "testFromRedisSet"
127.0.0.1:6379>


Why is the Cache Facade not available when using Redis for the cache?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire