介绍经过编译安装和安装扩展,Redis可以正常使用。但是在laravel中还需要其他操作。安装扩展要在laravel中使用Redis,还需要安装predis扩展。使用composerrequirepredis/predis安装它。修改config/database.php文件中Redis的配置,根据需要修改,我这里不用改;设置Cache默认缓存为Redis,.evn文件中CACHE_DRIVER=redis;将会话驱动程序设置为Redis,在.env文件中SESSION_DRIVER=redis;配置多个库经过以上配置,多个服务使用Redis。如果他们都使用同一个库,这显然是不合理的。我们可以配置多个连接来解决这个问题。Redis默认有16个库,可以在服务器修改redis.conf的database值。先看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),],],默认有两个连接,default和cache。我们看一下Redis在config/cache.php中的配置'redis'=>['driver'=>'redis','connection'=>'cache',],可以看到它的connection值为cache,也就是使用config/database.php中的Redis缓存。接下来修改config/database.php中的Redis,添加session连接,如下'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),],'session'=>['host'=>env('REDIS_HOST','127.0.0.1'),'password'=>env('REDIS_PASSWORD',null),'port'=>env('REDIS_PORT',6379),'database'=>env('REDIS_SESSION_DB',2),],],然后在.env中添加SESSION_CONNECTION=session。经过上面的操作修改了测试。总结一下,default使用library0,cache使用library1,session使用library2。使用如下代码测试/***测试Redis存储*/publicfunctiontestRedis(){//RedisfacadeRedis::setex('门面',30,'我是门面');//缓存Cache::put('cache','我是缓存',now()->addMinute(30));//因为Cache默认是Redis的,一切同上//Cache::store('redis')->put('cache',now(),now()->addMinute(30));}运行以上代码后,在服务端使用redis-cli查看存储情况,使用Redis门面操作可以看到各个库的存储情况,默认是config/database.php中Redis的默认连接,数据存放在0号库中;使用Cache操作,因为config/cache.php中Redis的连接设置为缓存,当然是存放在库1中;Session也是根据SESSION_CONNECTION=session配置的,正确存储在2个库中;使用Redisfacade时,还可以指定连接$redis=Redis::connection('session');$redis->setex('facades_connection',30,'iamfacades_connection');参考资料:LaravelRedis文档。
