一切的前提都是已经安装好了redis服务器,而且能启动(我只总结了mac的安装方法:传送门)php
我本身使用的是mac系统,有个教程能够参考下,传送门:html
1>PRedis是PHP访问redis的扩展包,只须要下载原码便可,不须要安装PHP扩展(如php-redis.so)。laravel
2>laravel经过Composer来安装第三方程序包(管理依赖关系)redis
3>在Laravel项目根目录下运行以下命令使用Composer安装predis依赖包:数据库
composer require predis/predis 1.0.*数组
默认状况下,Redis 服务会提供 16 个数据库,Laravel 使用数据库 0 做为缓存和 Session 的存储。当你在执行命令 php artisan cache:clear 的时候,会把 Session 也连带清除了,致使全部用户须要从新登陆。咱们的目的是让缓存,也就是默认的 Redis 存储到 0 号数据库,Session 存储在 1 号数据库。('database' => 0,'database' => 1)缓存
应用的Redis配置位于config/database.php,你能够基于环境随意修改该数组,只须要给每一个Redis服务器一个名字并指定该Redis服务器使用的主机和接口。服务器
'redis' => [ 'cluster' => false, //默认的redis服务器 'default' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], //供session使用的 'session' => [ 'host' => env('REDIS_HOST', 'localhost'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 1, ], //配置更多的redis服务器... ],
修改 config/session.php 文件中connection选项为session:以下session
'connection' => 'session',composer
SESSION_DRIVER=redis
执行如下命令后检查下是否退出登陆:
php artisan cache:clear
另外Redis若是将是做为缓存工具,咱们config/cache.php 文件,请注意下面两个配置
'default' => env('CACHE_DRIVER', 'file'), 'stores' => [ 'apc' => [ 'driver' => 'apc', ], 'file' => [ 'driver' => 'file', 'path' => storage_path('framework/cache'), ], // 其它一些配置省略了... 'redis' => [ 'driver' => 'redis', 'connection' => 'default', ], ],
分析:
1>此时cache使用的是file驱动
2>stores数组中redis对应的是默认的redis配置(default,config/database.php文件中redis的配置选项)
改动:咱们能够直接改'default' => env('CACHE_DRIVER', 'redis')这样咱们的cache就是用了redis进行缓存(先不考虑.env文件的配置)
进一步分析:
config/session.php 文件下有'driver' => env('SESSION_DRIVER', 'file'),
config/cache.php文件下有'default' => env('CACHE_DRIVER', 'file'),
咱们在回头看下.env文件,有以下内容
CACHE_DRIVER=file SESSION_DRIVER=redis QUEUE_DRIVER=sync REDIS_HOST=192.168.1.248 REDIS_PASSWORD=null REDIS_PORT=6379
咱们知道在这里能够刷新原文件进行的一些配置,在.env文件中咱们能够配置session和cache使用哪一种方式驱动,咱们还能够配置redis的服务器地址等等
咱们能够在Redis门面上以静态方法的方式调用Redis客户端提供的任何命令,而后Laravel使用魔术方法将命令传递给Redis服务器并返回获取的结果。
使用前提是引入Redis门面
use Illuminate\Support\Facades\Redis;
一些基本使用
Redis::set('key','value'); //存入redis
Redis::get('key'); //获取redis中的值
Redis::lLen('key'); //队列的长度
Redis::rpop('key'); //右侧出队列
Redis::rpush('key','value'); //右侧存入队列
Redis::exists($key) //redis是否存在这个键