#118676 Пробелма со сбросом кеша

This commit is contained in:
2025-10-23 12:21:29 +03:00
parent a7bb060bbd
commit d6cbd34e8f

View File

@@ -192,16 +192,19 @@ class RedisCache
{ {
foreach ($patterns as $pattern) foreach ($patterns as $pattern)
{ {
$cursor = 0;//NULL; $cursor = NULL;
foreach ($patterns as $pattern) foreach ($patterns as $pattern)
{ {
$arKeys = []; $arKeys = [];
while ($values = Yii::$app->redis->hscan($key, $cursor, $pattern)) $count = 1000;
while ($values = Yii::$app->redis->hscan($key, $cursor, $pattern, $count))
{ {
foreach ($values as $vkey => $value) foreach ($values as $vkey => $value)
{ {
$arKeys[] = $vkey; $arKeys[] = $vkey;
} }
if(count($values) < $count)
break;
} }
foreach ($arKeys as $value) foreach ($arKeys as $value)
{ {
@@ -378,11 +381,12 @@ class RedisCache
$result = Yii::$app->redis->keys('del:*'); $result = Yii::$app->redis->keys('del:*');
foreach ($result as $val) foreach ($result as $val)
{ {
$cursor = 0;//null; $cursor = null;
$key = str_replace(self::prefix(), '', $val); $key = str_replace(self::prefix(), '', $val);
$pattern = '*'; $pattern = '*';
$arKeys = []; $arKeys = [];
while ($values = Yii::$app->redis->hscan($key, $cursor, $pattern)) $count = 1000;
while ($values = Yii::$app->redis->hscan($key, $cursor, $pattern, $count))
{ {
foreach ($values as $vkey => $value) foreach ($values as $vkey => $value)
{ {
@@ -391,6 +395,8 @@ class RedisCache
$arKeys[] = $vkey; $arKeys[] = $vkey;
} }
} }
if(count($values) < $count)
break;
} }
$keyCache = str_replace(self::prefix() . "del:", '', $val); $keyCache = str_replace(self::prefix() . "del:", '', $val);
foreach ($arKeys as $value) foreach ($arKeys as $value)