优化随机查询云仓商品

This commit is contained in:
luofei 2023-05-31 12:53:09 +08:00
parent 8f7da59b5d
commit a36a775db4

View File

@ -225,19 +225,18 @@ class SpuRepository extends BaseRepository
$dataKey = 'CloudMerchantSpu_' . $merId; $dataKey = 'CloudMerchantSpu_' . $merId;
$takenKey = 'CloudMerchantSpuTakenProductIds_' . $merId . '_page_'. $page; $takenKey = 'CloudMerchantSpuTakenProductIds_' . $merId . '_page_'. $page;
$RedisCacheService = app()->make(RedisCacheService::class); $RedisCacheService = app()->make(RedisCacheService::class);
if (!$RedisCacheService->exists($takenKey)) { if ($RedisCacheService->exists($takenKey)) {
$productIds = $RedisCacheService->sRandMember($dataKey, 10); return $RedisCacheService->get($dataKey);
} else { }
$keys = $RedisCacheService->sDiff($dataKey, $takenKey); $keys = $RedisCacheService->sDiff($dataKey, $takenKey);
$number = min(count($keys), 10); $number = min(count($keys), 10);
if ($number <= 0) { if ($number <= 0) {
return []; return [];
} }
$indexes = array_rand($keys, $number); $indexes = array_rand($keys, $number);
$productIds = []; $productIds = [];
foreach ($indexes as $index) { foreach ($indexes as $index) {
$productIds[] = $keys[$index]; $productIds[] = $keys[$index];
}
} }
$RedisCacheService->sAdd($takenKey, ...$productIds); $RedisCacheService->sAdd($takenKey, ...$productIds);
$RedisCacheService->expire($takenKey, 60); $RedisCacheService->expire($takenKey, 60);