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 2 //切换到 redis的数据库2
参考 :https://www.cnblogs.com/oxspirt/p/6529791.html