yii2, redis + mysql. Как правильно взаимодействовать

У меня есть функционал создания сообщества

$model = new Community();

        if ($model->load(Yii::$app->request->post())) {
            $image = UploadedFile::getInstances($model, 'image');
            if (!empty($image)) {
                $img = Images::uploadAvatar($image, '', '', false);
                $model->img = $img;
            }

            $model->user_id = Yii::$app->user->id;
            if ($model->validate() && $model->save()) {
                $model->saveCommunityRedis($model->user_id, $model->id);
                Yii::$app->session->setFlash('success', 'Спільноту створено. Очікуйте підтвердження від модератора.');
                return $this->refresh();
            } else
                Yii::$app->session->setFlash('error', 'Трапилась помилка. Спробуйте знову.');
        }

Далее я отображаю кнопки подписаться/отписаться

Но я не хочу отображать эти кнопки пользователю на сообщества которые он создал

Для этого мне нужно получить массив сообществ которые он создал. Чтобы их получить мне нужно делать запрос в mysql.

На сколько правильно будет хранить данные в redis?

Тоесть пользователь создал сообщество(сохранил в MySql), и после создания сообщества я сохраняю в redis id

    public function saveCommunityRedis($userId, $comId)
    {
        $redis = Yii::$app->redis;
        $redis->sadd("user:{$userId}:communities", $comId);
    }

сообщества и вместо запроса в MySql я буду обращаться в redis

На сколько это будет правильная связка?


Ответы (0 шт):