laravel用redis保存session遇到的坑,
配置redis存储session流程是这样的
在.evn文件中把session驱动和连接改为了redis的 如下:
SESSION_DRIVER=redis
SESSION_CONNECTION=session //这个是新加的
在session配置文件哪里,更改相应的链接配置(config/database.php) 如下:
'redis' => [ 'client' => 'phpredis', '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_CACHE_DB', 2),
], ],
其中'session' 就是新增的链接,要和.env配置的同名
然后配置好测试,网页正常(可以读取写入),就是在redis-cli 控制台查不出来session
public function index(Request $request)
{
// $redis = new \Redis();
// $test = $redis->connect('127.0.0.1',6379);
// $redis->set('cat', 111);
// //获取一个字符串的值
// echo $redis->get('cat'); // 111 $redis = app('redis.connection');
$redis->set('library', 'predis'); // 存储 key 为 library, 值为 predis 的记录;
$request->session()->put('let','lw21321321t');
$request->session()->put('lwt','lw888881t');
$request->session()->put('ss','ss'); return "aa11";
}
public function show(Request $request)
{
$sesson = $request->session();
dd($sesson);
return "show"; }
结果:
但是 redis-cli控制台一直没有结果
网上查了一阵,发现 redis有16个数据库?, 我的session配置存在了数据库2里面,所以要在数据库2里面查看数据,结果 果然如此, [尴尬流汗]
select //切换到 redis的数据库2
参考 :https://www.cnblogs.com/oxspirt/p/6529791.html