Redis集合存储在不同服务器为什么表现不同
同一个项目部署到两台服务器,项目Laravel Framework 10.41.0版本
同样的redis版本7.2
$redis = Redis::connection()->client();
$redis->select(7);
$models = RoomModel::where("category_id", 1)->get();
$models->map(function (RoomModel $model) use ($redis) {
$key = "room:category_id:".$model->category_id;
$redis->sAdd($key, $model->toArray());
$redis->expireAt($key, now()->addDays(random_int(20, 30))->timestamp);
});
$key = "room:category_id:1";
$data = $redis->sMembers($key);
$redis->close();
一台服务器存储结果表现为
另一台服务器存储结果表现为
为什么会造成这种结果
看起来是 phpredis 的 OPT_SERIALIZER 选项不同导致的,前者是
Redis::SERIALIZER_NONE
后者是Redis::SERIALIZER_PHP
。不过 Laravel 默认没有在环境变量层面提供这样的配置,可能是你们自己加上的。