优化随机查询云仓商品
This commit is contained in:
parent
8f7da59b5d
commit
a36a775db4
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user