#110864 Конфигурация yii для работы с кластерным redis
This commit is contained in:
		@@ -4,6 +4,7 @@ namespace dominion\cache;
 | 
			
		||||
 | 
			
		||||
use Yii;
 | 
			
		||||
use Predis\Client;
 | 
			
		||||
use yii\helpers\Inflector;
 | 
			
		||||
 | 
			
		||||
class Connection extends \yii\redis\Connection
 | 
			
		||||
{
 | 
			
		||||
@@ -14,7 +15,7 @@ class Connection extends \yii\redis\Connection
 | 
			
		||||
    /**
 | 
			
		||||
     * @var mixed Options to configure some behaviours of the client.
 | 
			
		||||
     */
 | 
			
		||||
    public $options;
 | 
			
		||||
    public $options = [];
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var Client redis socket connection
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,7 @@ class RedisCache
 | 
			
		||||
    {
 | 
			
		||||
        if (!self::$prefix)
 | 
			
		||||
        {
 | 
			
		||||
            self::$prefix = isset(Yii::$app->params['redis'], Yii::$app->params['redis']['prefix']) ? (int) Yii::$app->params['redis']['prefix'] : '';
 | 
			
		||||
            self::$prefix = isset(Yii::$app->params['redis'], Yii::$app->params['redis']['prefix']) ? (string)Yii::$app->params['redis']['prefix'] : '';
 | 
			
		||||
        }
 | 
			
		||||
        return self::$prefix;
 | 
			
		||||
    }
 | 
			
		||||
@@ -97,7 +97,7 @@ class RedisCache
 | 
			
		||||
 | 
			
		||||
    public static function hset($key, $field, $value)
 | 
			
		||||
    {
 | 
			
		||||
        return self::getActive() ? Yii::$app->redis->hset(self::calculateKey($key), $field, $value) : false;
 | 
			
		||||
        return self::getActive() ? Yii::$app->redis->hset(self::calculateKey($key), $field, json_encode($value)) : false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function hsetModel($key, $field, $model)
 | 
			
		||||
@@ -134,7 +134,12 @@ class RedisCache
 | 
			
		||||
 | 
			
		||||
    public static function hget($key, $field)
 | 
			
		||||
    {
 | 
			
		||||
        return self::getActive() ? Yii::$app->redis->hget(self::calculateKey($key), $field) : false;
 | 
			
		||||
        $output = false;
 | 
			
		||||
        if(self::getActive())
 | 
			
		||||
        {
 | 
			
		||||
            $output = json_decode(Yii::$app->redis->hget(self::calculateKey($key), $field), true);
 | 
			
		||||
        }
 | 
			
		||||
        return $output === null ? false : $output;;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function hgetModel($key, $field, $className)
 | 
			
		||||
@@ -275,8 +280,7 @@ class RedisCache
 | 
			
		||||
            {
 | 
			
		||||
                $options = ['EX' => $options];
 | 
			
		||||
            }
 | 
			
		||||
            $json = json_encode($value);
 | 
			
		||||
            Yii::$app->redis->set(self::calculateKey($key), $json, $options);
 | 
			
		||||
            Yii::$app->redis->set(self::calculateKey($key), json_encode($value) .' '. implode(' ', $options));
 | 
			
		||||
        }
 | 
			
		||||
        return $result;
 | 
			
		||||
    }
 | 
			
		||||
@@ -309,9 +313,9 @@ class RedisCache
 | 
			
		||||
        $result = false;
 | 
			
		||||
        if (self::getActive())
 | 
			
		||||
        {
 | 
			
		||||
            $result = Yii::$app->redis->get(self::calculateKey($key));
 | 
			
		||||
            $result = json_decode(Yii::$app->redis->get(self::calculateKey($key)), true);
 | 
			
		||||
        }
 | 
			
		||||
        return $result ? json_decode($result, true) : $result;
 | 
			
		||||
        return $result === null ? false : $result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function getModel($key, $className)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user