在Laravel 5中直接使用Memcache而不是通过Cache使用

时间:2016-08-24 03:59:28

标签: laravel memcached

我正在使用本地memcache服务器来存储值。如果我将Memcache定义为Cache的选定驱动程序,它可以正常工作。在config / cache.php中但是,如果我在laravel之外使用memcache,则使用Cache :: get()进行内存缓存访问的速度要比使用Cache :: get()的Laravel控制器快得多。

我需要在Memcache中存储大量数据,并且可以在整个系统中访问。所以我试图直接使用memcache但是我得到了以下错误。

[2016-08-23 14:11:19] local.ERROR:Symfony \ Component \ Debug \ Exception \ FatalThrowableError:Class' App \ Http \ Controllers \ Memcache'没找到....

我的代码如下:

"MethodsList"

只是要清楚 - memcache软件包已经安装并正常工作,因为我可以通过Cache工作:以及从Laravel外部安装直接访问memcache。 感谢我能得到的任何帮助。

2 个答案:

答案 0 :(得分:0)

根据laravel cache docs,您需要在config/cache.php中设置memcached配置,并指定要用作" memcached"的驱动程序。

然后,只需使用\Cache,如下例所示。

// to get value
$value = \Cache::get('key');

// to set value
$minuts = 30;
\Cache::put('key', 'value', $minutes);

如果有多个缓存

,您还可以在代码上指定驱动程序
$value = \Cache::store('memcached')->get('key');

答案 1 :(得分:0)

我能够找出在Laravel中访问内存缓存所需的必要更改。以下是现在为我顺利运作的代码。

use Memcached;
        ....
        $memcache = new Memcached;
        $memcache->addServer('localhost', 11211) or die ("Could not connect");
        $res1 = $memcache->get('key1');
        ....

这肯定比使用memcache驱动程序的Cache :: get快!