gpt4 book ai didi

php - 使用非零的数据库编号时,Laravel 6 redis session 不存储到 redis

转载 作者:行者123 更新时间:2023-12-03 06:44:24 27 4
gpt4 key购买 nike

使用 laravel 6.8、php7.4。我正在使用 redis session ,在 database.php 中它看起来像这样:

'session' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
然后在 .env 中:
REDIS_DB=0
这个设置似乎一切正常,我可以看到存储在 redis 中的 session ,它匹配 \Session::getId() .问题是当我将 .env 中的 REDIS_DB 参数更新为其他内容时,例如 REDIS_DB=1 ,redis中没有存储 session ,即我可以使用 \Session::getId()获取 session ID但是当我做 print_r(Redis::keys('*') 时它不存在
任何帮助或提示将不胜感激。

最佳答案

默认 redis 和 session 可能使用不同的 redis,或者即使在同一个 redis 中也可能使用不同的数据库。当你设置数据库 1到 session 连接,它总是从数据库中读取、写入 1 .但是由于你的redis的default数据库连接设置为 0 ,您无法通过调用 Redis::keys('*') 来获取 session key 因为数据在两个不同的数据库中。
有两种方法可以解决它;

  • 查询时设置为数据库名称;
  • Redis::select(1);
    return Redis::keys('*');
  • 通过设置 REDIS_DB 更新默认的 redis 配置至1 .
  • 关于php - 使用非零的数据库编号时,Laravel 6 redis session 不存储到 redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64693458/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com