laravel用redis保存session遇到的坑,没报错,但redis-cli就是查不到

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

猜你喜欢

转载自www.cnblogs.com/fps2tao/p/9969244.html