一切的前提都是已經安裝好了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是否存在這個鍵