php-redis跨页面无法使用?有遇到相同问题的朋友吗

redis版本:6.2 ; php-redis:6.0.0-dev

在登录控制器写入了数据,在其他控制器就无法读取,在一个方法内写了数据然后再读取就可以读取出来,这种情况该怎么解决呀。这个是我部署到线上出的问题,我本地是没问题的。

补充:

我进一步调试的时候发现了原因,我在中间件之前获取token的路由的控制器里面设置的redis缓存,然后接着从redis读取,这时候是可以读取的,但是我在cli里面查看是没有这个key的。

我又在另一个业务接口中进行相同的操作,这时候在cli中就能看到那个key了。

Route::any('/token', [\App\Http\Controllers\UserController::class, 'token']);//这里写入redis,cli中无写入数据


Route::middleware(\App\Http\Middleware\RefreshToken::class)->group(function (){
    Route::any('/food/all', [\App\Http\Controllers\FoodController::class, 'all']);//这里写入redis,cli中有数据
    Route::any('/food/record', [\App\Http\Controllers\FoodController::class, 'record']);
    Route::any('/food/recordlist', [\App\Http\Controllers\FoodController::class, 'record_list']);
});
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 8

会不会是用了不同的database

//config.php/redis
'default' => [
  'host' => env('REDIS_HOST', '127.0.0.1'),
  'password' => env('REDIS_PASSWORD', null),
  'port' => env('REDIS_PORT', 6379),
  'database' => 0,//这里的配置
  'read_write_timeout' => 5,
],

也可能是配置了不同的key前缀

2年前 评论
Laravel_Panda (楼主) 2年前
renxiaotu (作者) 2年前
陈先生

我们像个最简单的看下 有没有可能是不是一个redis?

2年前 评论
Laravel_Panda (楼主) 2年前

这种情况 得先确定基础配置项是否一致

2年前 评论

你应该是用了两个不同的Redis配置 PECL扩展安装的redis和 composer安装的predis注意要区分下 直接 new \Redis() 是调用了你的 redis 扩展 Redis 类; 而use Illuminate\Support\Facades\Redis 是纯php写的composer包。这两个是不一样的

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!