#117067 Доработка редис на yii проектах RedisSentinel

This commit is contained in:
2025-09-12 13:45:10 +03:00
parent c20f00cc2a
commit a7bb060bbd
5 changed files with 685 additions and 72 deletions

View File

@@ -52,7 +52,7 @@ class RedisCache
{
if (!self::$livetime)
{
self::$livetime = isset(Yii::$app->params['redis'], Yii::$app->params['redis']['livetime']) ? (int) Yii::$app->params['redis']['livetime'] : 300;
self::$livetime = isset(Yii::$app->params['redis'], Yii::$app->params['redis']['livetime']) ? (int) Yii::$app->params['redis']['livetime'] : 15*60;
}
return self::$livetime;
}
@@ -61,16 +61,11 @@ class RedisCache
{
if (!self::$prefix)
{
self::$prefix = isset(Yii::$app->params['redis'], Yii::$app->params['redis']['prefix']) ? (string)Yii::$app->params['redis']['prefix'] : '';
self::$prefix = isset(Yii::$app->redis->parameters, Yii::$app->redis->parameters['prefix']) ? Yii::$app->redis->parameters['prefix'] : '';
}
return self::$prefix;
}
protected static function calculateKey($key)
{
return self::prefix() . $key;
}
public static function hdel($key, $value)
{
if (self::$setDeleteKey)
@@ -79,7 +74,7 @@ class RedisCache
}
else
{
Yii::$app->redis->hdel(self::calculateKey($key), $value);
Yii::$app->redis->hdel($key, $value);
}
}
@@ -91,13 +86,13 @@ class RedisCache
}
else
{
Yii::$app->redis->del(self::calculateKey($key));
Yii::$app->redis->del($key);
}
}
public static function hset($key, $field, $value)
{
return self::getActive() ? Yii::$app->redis->hset(self::calculateKey($key), $field, json_encode($value)) : false;
return self::getActive() ? Yii::$app->redis->hset($key, $field, json_encode($value)) : false;
}
public static function hsetModel($key, $field, $model)
@@ -137,7 +132,7 @@ class RedisCache
$output = false;
if(self::getActive())
{
$output = json_decode(Yii::$app->redis->hget(self::calculateKey($key), $field), true);
$output = json_decode(Yii::$app->redis->hget($key, $field), true);
}
return $output === null ? false : $output;;
}
@@ -201,7 +196,7 @@ class RedisCache
foreach ($patterns as $pattern)
{
$arKeys = [];
while ($values = Yii::$app->redis->hscan(self::calculateKey($key), $cursor, $pattern))
while ($values = Yii::$app->redis->hscan($key, $cursor, $pattern))
{
foreach ($values as $vkey => $value)
{
@@ -233,7 +228,7 @@ class RedisCache
public static function getKeyTypes()
{
$result = Yii::$app->redis->keys(self::calculateKey('*'));
$result = Yii::$app->redis->keys('*');
$output = ['*'];
foreach ($result as $val)
{
@@ -258,7 +253,7 @@ class RedisCache
{
self::deleteAll($type);
$type = $type == "*" ? "*" : "{$type}:*";
$result = Yii::$app->redis->keys(self::calculateKey($type));
$result = Yii::$app->redis->keys($type);
foreach ($result as $val)
{
self::deleteAll(str_replace(self::prefix(), '', $val));
@@ -280,7 +275,7 @@ class RedisCache
{
$options = ['EX' => $options];
}
Yii::$app->redis->set(self::calculateKey($key), json_encode($value) .' '. implode(' ', $options));
Yii::$app->redis->set($key, json_encode($value), $options);
}
return $result;
}
@@ -313,7 +308,7 @@ class RedisCache
$result = false;
if (self::getActive())
{
$result = json_decode(Yii::$app->redis->get(self::calculateKey($key)), true);
$result = json_decode(Yii::$app->redis->get($key), true);
}
return $result === null ? false : $result;
}
@@ -380,14 +375,14 @@ class RedisCache
*/
public static function oldCacheDelete()
{
$result = Yii::$app->redis->keys(self::calculateKey('del:*'));
$result = Yii::$app->redis->keys('del:*');
foreach ($result as $val)
{
$cursor = 0;//null;
$key = str_replace(self::prefix(), '', $val);
$pattern = '*';
$arKeys = [];
while ($values = Yii::$app->redis->hscan(self::calculateKey($key), $cursor, $pattern))
while ($values = Yii::$app->redis->hscan($key, $cursor, $pattern))
{
foreach ($values as $vkey => $value)
{