2017-08-25 12 views
1

J'ai memcached sélectionné comme pilote de cache. Cependant, a couru dans un problème étrange.laravel memcached car le CACHE_DRIVER ne semble pas fonctionner

Une fois que je fais:

Cache::put('name','John',15); 

Dans la ligne suivante si je donne

var_dump(Cache::get('name')) 

il me montre:

bool(false) 

ne pouvait pas comprendre ce qui se passe mal ici . J'ai memcached fonctionnant sur le port 11211 sur mon localhost que je peux telnet.

Egalement phpinfo() montre que la bibliothèque php-memcached est installée.

Mon fichier config/cache.php lit:

'default' => env('CACHE_DRIVER', 'memcached'), 
'stores' => [ 

    'apc' => [ 
     'driver' => 'apc', 
    ], 

    'array' => [ 
     'driver' => 'array', 
    ], 

    'database' => [ 
     'driver' => 'database', 
     'table' => env('CACHE_DATABASE_TABLE', 'cache'), 
     'connection' => env('CACHE_DATABASE_CONNECTION', null), 
    ], 

    'file' => [ 
     'driver' => 'file', 
     'path' => storage_path('framework/cache'), 
    ], 

    'memcached' => [ 
     'driver' => 'memcached', 
     'servers' => [ 
      [ 
       'host' => env('MEMCACHED_HOST', '127.0.0.1'), 'port' => env('MEMCACHED_PORT', 11211), 'weight' => 100, 
      ], 
     ], 
    ], 

    'redis' => [ 
     'driver' => 'redis', 
     'connection' => env('CACHE_REDIS_CONNECTION', 'default'), 
    ], 

], 
'prefix' => env('CACHE_PREFIX', 'laravel'), 

S'il vous plaît aider.

Répondre

1

Vous avez une faute de frappe. La méthode pour définir une valeur dans le cache est put(), mais vous avez utilisé get() deux fois. Essayez ceci:

Cache::put('name','John',15); 
+0

Désolé, ce fut une faute de frappe dans la question elle-même. J'utilise seulement mettre, ne pas obtenir. – debaShish

0

Finalement après une journée entière de googling, j'ai trouvé la solution.

Il semble que je dû ajouter la ligne suivante à bootstrap/app.php:

$app->configure('cache'); 

En outre, s'il vous plaît noter que si vous exécutez votre application à l'intérieur d'un conteneur VM/docker, vous devez fournissez l'adresse IP de l'hôte.

+0

Je suis dans la même situation que mon application est sur heroku. Quand j'essaie de suivre Cache :: put ('name', 'John', 15); Cache :: get ('nom') affiche => John mais dès que je commente // Cache :: put ('name', 'John', 15); Cache :: get ('nom') rien affichage S'il vous plaît laissez-moi savoir si une idée Config: 'memcached' => [ 'pilote' => 'memcached', ' serveurs' => [ [ 'hôte' => env ('MEMCACHED_HOST', '127.0.0.1'), 'port' => env ('MEMCACHED_PORT', 11211), 'poids' => 100, ], ], ], – Yogesh