DevGang
Авторизоваться

Инструмент знакомств для освободившихся заключенных

Эта будет запись в блоге, в которой рассказывается, как создать инструмент знакомств для вернувшихся на свободу заключенных с помощью RedisJSON и RediSearch. Здесь мы рассмотрим о различных измерениях данных в подборе возвращающихся на свободу заключенных, а также о том, как собрать некоторые из этих данных и сохранить в RedisJSON.

Надеемся, что к концу этого руководства вы разовьете способность хранить документы в формате JSON с помощью RedisJSON, будете знакомы с Redis Cloud и Redis Stack и освоите первую часть инструмента, который поможет освободившимся заключенным лучше вписаться в общество.

Для нашего удобства мы разделим данное руководство на две части:

  1. Инструмент знакомств для освободившихся заключенных
  2. Настоящую любовь нетрудно найти с RedisJSON

Начнем

Боль бывших заключенных, вернувшихся в общество, нельзя недооценивать. Как видно из фильма «Побег из Шоушенка», выбраться из системы (теперь это привычный образ жизни в тюрьме) в общество не так то просто, особенно для бывших заключенных, которые пробыли там долгое время. Тем не менее, эта проблема остается заброшенной в большинстве обществ.

Чтобы мы не давали бывшим заключенным возможности совершать преступления, давайте быстрее реинтегрируем их в общество. Встреча с человеком, который также был в системе, может быть более быстрым способом добиться этого. Чтобы сопоставить обе сущности, нужно учитывать их специфичные интересы в отношении свиданий. Чем больше у нас данных по этим интересам, тем больше мы можем дать идеального совпадения. Обычно при создании социального инструмента, включающего сложного отношения между сущностями, рекомендуется использовать графическую базу данных, такую как RedisGraph. Мы можем изучить это позже, а сейчас, чтобы не усложнять ситуацию мы предпочли бы сохранить эти интересы, поступающие из различных Omni-каналов, таких как социальные сети, SMS, онлайн-форм, текстовых сообщений и т.д., в формате JSON. Часто это первый шаг процесса анализа данных, известного как сбор данных.

В анализе данных этап сбора данных включает в себя сбор данных из различных каналов настолько неограниченно, чтобы иметь возможность делать выводы и визуализировать шаблоны данных. Мы будем изучать эти данные в формате JSON, для выявления закономерностей, которые затем будут определять наши функциональные требования к нашему инструменту знакомств. У вас нет желания создавать того, что не работает, и мы это прекрасно знаем. Прекрасным способам сбора такого рода данных в ручных, автоматических и полуавтоматических системах является использование JSON.

Что такое JSON и зачем хранить данные в JSON?

JavaScript Object Notation (JSON) - это стандарт для передачи нескольких структур данных между приложениями и системами. И очень популярен среди разработчиков. Имя «Jason» даже наполовину не так популярно среди этой группы людей. Пока вы размышляете о том, что сделало этот стандарт представления таким распространенным и почему он известен как стандарт de-facto для REST API и многих других стандартных альтернатив API, давайте попробуем в этом убедиться сами на примере нашего варианта инструмента для знакомств.

Идеальное хранилище данных для нашего инструмента

Различные источники данных, представляющие интерес для приложения для подбора партнеров, могут включать пол, расу, сексуальную ориентацию, дату рождения, исправительное учреждение, количество отработанных лет, и из-за более специфических потребностей эти данные могут не соответствовать строгой схеме. Например, некоторые параметры данных, такие как дескрипторы социальных сетей, могут быть обязательными при получении этих данных из социальных сетей, но не обязательными для тех, кто пытается найти партнеров с помощью текстовой платформы.

Поэтому подходит база данных, которая не навязывает нам схему. И был бы полезен формат данных, который бы хорошо подходил и обеспечивал быструю передачу данных между системами. И JSON хорошо подходит для этого варианта использования с небольшими сложностями. Помимо этого, формат данных отлично подходит для добавления метаданных к каждому элементу данных, как и с случае знакомств. Для получения дополнительной информации по каждому компоненту данных можно добавить метаданные для большей детализации интересов. Хранение данных в формате JSON отлично подходит не толко для временных нужд, но и для гораздо более постоянного хранения этих данных в формате JSON. Это один из типов базы данных документов. Существует 2 типа баз данных документов (нереляционные базы данных, которые хранят данные в виде набора документов). Базы данных NoSQL - это первые нереляционные типы, но документы можно запрашивать декларативным образом, а второй тип - это базы данных документов JSON, в которых данные хранятся нереляционно как JSON. И поскольку мы увидели насколько хорош JSON, мы обязательно внедряем базу данных документов JSON.

RedisJSON

На сегодняшний день RedisJSON - лучшая база данных документов JSON. Он быстр как молния и проста в хранении данных в формате JSON очень. При запросе данных в формате JSON он предоставляет множество возможностей для сложных запросов. Вся настройка выполняется без особых усилий и соответствует одним из лучших стандартов DevOps. С помощью docker вы можете запустить его за считанные секунды. Вы можете использовать его локально или даже на самых популярных облачных платформах, включая RedisCloud. 

Хранение данных в RedisJSON

На данный момент наши данные из разных источников сопоставляются в JSON. Возвращенным на свободу заключенным была разослана онлайн-форма, и заполненная форма получает данные в формате JSON, некоторые отправляют текстовые сообщения, другие общаются через социальные сети, и все они преобразуются в данные JSON. Даже тюремный надзиратель ждет, чтобы его соединили с одним из репатриантов, которые разделяют интересы из полученного текста. 

Как мы затем сохраним эти документы JSON в RedisJSON? Что касается меня, то я люблю самый быстрый маршрут. Я создаю бесплатную учетную запись Redis Enterprise Cloud. Как только вы нажмете на кнопку “Get Started”, вы получите электронное письмо со ссылкой для активации вашей учетной записи и завершения процесса регистрации. Я выбираю предпочитаемого поставщика облачных услуг, а затем для моего предприятия автоматически создается база данных, как показано ниже.

Как видите, RedisJSON — это один модуль из нескольких расширений Redis, известных как Redis Stack. Со списком других услуг, предоставляемых Redis Stack, можно ознакомиться на странице Redis Stack. Вы также можете ознакомиться руководством по установке других методов, помимо RedisCloud.

Честно говоря, насколько быстро это было? Почему бы нам не добавить немного комфорта к скорости? Вам нужно будет взаимодействовать и просматривать визуализацию вашей вновь созданной базы данных даже с вашего локального компьютера. Положения об этом и многом другом доступны через RedisInsight.

Загрузите RedisInsight v2 в вашей локальной системе по этой ссылке, добавьте базу данных с вашими облачными данными. 

Мы можем видеть настройки нашей базы данных.

Нажмите на базу данных, и на левой боковой панели следующей страницы щелкните значок карандаша. Давайте попробуем выполнить несколько команд.

Предположим, что мы получаем интерес вернувшегося заключенного из конвертера текстовых сообщений, в котором говорится указать рост, сексуальную ориентацию, размер тела и исправительный центр, разделенные пробелами. Мы можем решить хранить его следующим образом:

JSON.SET criteria .  ' "6ft Bi Muscular Michigan" '

Если мы получаем ОК в результате, как показано ниже, он был сохранен.

Результат:

OK

Это называется скалярным хранилищем, это просто означает, что сохраняется строка символов.

Что вставить данные с помощью Object Storage, которое скорее принимает их за объект JSON, мы пишем эту команду:

JSON.SET criteria_object $ '{ "criteria": { "height": "6ft", "sexual_orientation": Bi,"body_size": muscular,  ,"correctional_center": Michigan }  } '

Если у нас все в порядке в результате, как показано ниже, все готово.

Результат:

OK

Другой вид хранилища, в котором хранится массив объектов JSON (множественная информация):

JSON.SET criteria_array .  '{"criteria":[         {"height":"6ft", "sexual_orientation":"asexual", "age":20},         
{"height":"4ft", "sexual_orientation":":"straight", "age":28},       
{"height":"3ft", "sexual_orientation":":"lesbian", "age":63},         
{"height":"5ft", "sexual_orientation":":"bi", "age":41}    ]}   '

И если в результате мы получим все в порядке, как показано ниже, мы готовы к работе.

Результат:

OK

Если мы перейдем к нашей панели инструментов RedisInsight, мы увидим, что эти данные сохранены для нашего использования. 

В следующих уроках мы увидим, как мы можем поместить эти данные в RedisJSON, создав онлайн-форму, запросив измерения данных для различных наборов критериев соответствия и, возможно, подготовившись к другому блестящему инструменту - повторному поиску.

Мы ознакомили вас с первой частью нашей рекомендации по составлению инструмента для знакомств, и можно проходить уже к изучению второй:

  1. Инструмент знакомств для освободившихся заключенных
  2. Настоящую любовь нетрудно найти с RedisJSON
#Golang #Redis
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В подарок 100$ на счет при регистрации

Получить