1. 先说Redis,在环境中安装相对应的redis-server和php-redis扩展后,直接用一个客户端(Mac的rdm,没有密码直接连接)。
测试代码:
function tRedis(Request $request) {
Redis::set('name', 'laravel');
$user=Redis::get('name');
echo $user;
}
增加路由:
Route::post('tRedis', 'testController@tRedis');
然后去那个rdm中看就会有新的name键存在于redis的db中了。
2. 然后在说Session,
测试代码:
function tRedis(Request $request) {
session(['userName' => 'zhangsan']);
$userName = session('userName');
echo $userName;
}
增加路由:
Route::post('tRedis', 'testController@tRedis');
然后就会直接输出,默认的session使用的是file缓存。
3.现在说中间的关联,也就是session使用redis驱动,看那么多帖子和文档都是乱七八糟的。
首先修改config下的session.php 中的俩行:
'driver' => env('SESSION_DRIVER', 'redis'),
'connection' => 'session',
然后修改config下的database.php中的redis代码块:
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
'session' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 1,
],
// 'cache' => [
// 'host' => env('REDIS_HOST', '127.0.0.1'),
// 'password' => env('REDIS_PASSWORD', null),
// 'port' => env('REDIS_PORT', 6379),
// 'database' => 2,
// ],
],
在本地的.env的文件中,找到SESSION_DRIVER=file的修改为redis。
然后直接使用session的全局函数session(['userName' => 'zhangsan']);,这样session就会缓存到redis的第1个数据库。如果没有redis 的图形化界面的,一定记住需要切换数据库,再去查看redis数据库中存储的值。