По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Друг, начнем с цитаты: Redis – это высокопроизводительная БД с открытым исходным кодом (лицензия BSD), которая хранит данные в памяти, доступ к которым осуществляется по ключу доступа. Так же Редис это кэш и брокер сообщений. Надо признаться, определение не дает точного понимания, что же такое Redis. Если это так круто, то зачем вообще нужны другие БД? На самом деле, Redis правильнее всего использовать в определенных кейсах, само собой, зная про подводные камни – именно об этом и поговорим. Про установку Redis в CentOS 8 мы рассказываем в этой статье. Redis как база данных Говорим про случай, когда Redis выступает в роли базы данных: Пару слов про ограничения такой модели: Размер БД ограничен доступной памятью Шардинг (техника масштабирования) ведет к увеличению задержки Это NoSQL - никакого языка SQL LUA скриптинг в качестве альтернативы Это нереляционная СУБД! Нет сегментации на пользователей или группы пользователей. Отсутствует контроль доступа Доступ по общему паролю. Что скажут ваши безопасники? Теперь про преимущества модели: Скорость Хранение данных в памяти делает быстрее работу с ними Скрипты на LUA Выполнение прямо в памяти, опять же, ускоряет работу Удобные форматы запросов/данных Geospatial – геоданные (высота, ширина, долгота и так далее) Hyperloglog – статистическе алгоритмы Hash – если коротко, то хэш в Redis делают между строковыми полями и их значениями Алгоритмы устаревания данных Примеры использования Представь, у нас есть приложение, где пользователям необходимо авторизоваться, чтобы выполнять какие – либо действия внутри приложения. Каждый раз, когда мы обновляем авторизационные данные клиента, мы хотим их получать для последующего контроля. Мы могли бы отправлять лист авторизационных параметров (с некими номерами авторизаций, сроком действия с соответствующими подписями), чтобы каждое действие внутри приложения, сопровождалось авторизацонной транзакцией из листа, который мы прислали клиенту. С точки зрения безопасности, в этом подходе нет ничего плохого, если мы храним на своей стороне данные в безопасности и используем Javascript Object Signing and Encryption (JOSE), например. Но проблема появится в том случае, когда наш пользователь имеет более одной авторизации внутри приложения – такие схемы плохо поддаются масштабированию. А что если вместо отправки листа авторизационных параметров, мы сохраним его у себя, а пользователю отправим некий токен, который они должны отправлять для авторизации? Далее, по этому токену, мы легко сможем найти авторизации юзера. Это делает систему гораздо масштабируемой. Redis, такой Redis. Итого, для указанной выше схемы, мы хотим: Скорость Мы не хотим, чтобы пользователь долго ожидал авторизации Масштабирумость системы Сопоставление ключа (токена) с авторизациями юзера А вот, что на эти вызовы может ответить Redis: Redis хранит данные в памяти – он быстрый. Redis можно кластеризовать через компонент Sentinel. Масштабируемость? Пожалуйста. В Redis куча вариантов хранения списков. Самый простой будет являться набором данных. В качестве бонуса от Redis, вы получите механизм экспайринга токенов (устаревания). Все будет работать. Redis как кэш! Redis почти заменил memcached в современных приложениях. Его фичи делают супер – удобным кэширование данных. Ограничения: Значения не могут превышать 512 МБ Отсутствует искусственный интеллект, который будет очищать ваше хранилище данных Профит: Совместное использование кэша разными сервисами по сети Удобные фичи, такие как LUA скриптинг, который упрощает работы с кэшом Временные ограничения для данных Еще один кейс Предположим, перед нами такая задача: приложение, отображает пользователям данные с определенными значениями, которые можно сортировать по множеству признаков. Все наши данные хранятся в БД (например, MySQL) и показывать отсортированные данные нужно часто. Дергать БД каждый раз весьма тяжело и ресурсозатратно, а значит, нам нужно кэшировать данные в отсортированном порядке. Окей, кейс понятен. Рэдис, что скажешь на такие требования? Кэш должен хранить сортированные наборы данных Нам нужно вытаскивать наборы данных внутри наборов данных (для пагинации, например, то есть для переключения между страницами) Это должно быть быстрее, чем пересчет данных с нуля Что скажет Redis: Хранить наборы данных - легко Может вытаскивать сабсеты из наборов - легко Конечно быстрее. Ведь данные хранятся в памяти Redis как брокер сообщений Редис может выступать в качестве брокера сообщений. Схема обычная и весьма базовая - publish–subscribe (pub/sub), или как можно перевести на русский язык «Издатель - подписчик». Как и раньше, давайте обсудим плюсы и минусы, хотя их тут и не так много. Минусы: Только тривиальная модель pub/sub Отсутствие очередей сообщений Ну а плюсы, как обычно для Редиса – скорость и стабильность. Кейс напоследок Простой пример – коллаборация сотрудников одной компании. Предположим, у них есть приложение, где они работают над общими задачами. Каждый пользователь делает свой набор действий, о котором другие пользователи должны знать. А так же, юзеры могут иметь разные экземпляры приложений – десктоп, мобильный или что то еще. Требования по этой задаче: Низкая задержка Мы не хотим иметь трудности в процессе совместной работы сотрудников Стабильная работа и непрерывность Масштабирование Кампания растет и развивается Редис, твой выход! Низкая задержка – да, говорили об этом ранее Стабильность – минимальное количество точек отказа в Redis Стабильная работа и непрерывность Масштабирование – сделаем кластер, нет проблем. Выводы Redis - крутая штука, которая позволяет объединять сервисы и следовать 12 принципам приложений. Для приложений, в которых нагрузка ориентирована на быстрое изменение наборов данных и высокая безопасность данных не имеет завышенных требований – Redis прекрасный выбор. Если данные нуждаются в усиленной защите, Редис подойдет в меньшей степени, лучше посмотрите в сторону MongoDB или Elasticsearch.
img
Привет, дорогой любитель автоматизации с помощью бизнес - процессов! Мы очень рады, что в поисках полезной автоматизации обработки лидов в Битрикс24 ты нашел эту статью. Все потому, что мы тоже любим упрощать работу себе и своим сотрудникам, поэтому вот тебе кейс: Валерий – успешный менеджер по продажам. К нему прилетает лид. У Валерия есть только его электронная почта – оставлять телефон лид не захотел/не смог. После первичной обработки (выяснение потребностей, требований к услугам и так далее) лид сообщает, что не может ответить на некоторые вопросы и просит тайм – аут – предположим, пару дней. Конвертировать в сделку лида рано – мы не знаем ключевых параметров для формирования коммерческого предложения. Лид так и остается MQL (Marketing Qualified Lead) сущностью. В силу некоторых анатомических особенностей, Валерий бывает забывчив. В потоке новых лидов, которых он успешно конвертируется в SQL (Sales Qualified Lead), Валерий забывает про MQL лида. Но не забывает бизнес – процесс, о котором мы сейчас и расскажем. Битрикс24 бесплатно! Битрикс24 общается с лидом за вас Бизнес процесс работает следующим образом: Менеджер ставит лид в статус «Дожимаем лида»; Запускается цикл, который будет выполнятся до тех пор, пока лид находится в статусе «Дожимаем лида»; Бизнес-процесс берет паузу в 3 рабочих дня и спустя это время отправляет первое письмо лиду. Письмо будет отправляться от email адреса ответственного, с обращением к лиду по имени и формированием небольшой подписи в письме. Письмо отправляется такого содержания : Принято ли решение по проекту «%название_лида%». Параллельно с этим ответственному приходит сообщение об отправке внутри Битрикс24; После выполнения предыдущего шага, снова берется пауза в три рабочих дня, после чего отправляется письмо лиду другого содержания: Очень хотим с Вами работать :) Принято ли решение по проекту «%название_лида%»?. Параллельное уведомление приходит и ответственному; После чего, указанные выше шаги повторяются еще 2 раза (то есть общее число отправленных писем с интервалом в 3 рабочих дня будет равно 6); После отправки шестого письма бизнес процесс прервется; Очень советуем настроить триггеры в Битрикс24. Например, при событии «Входящее письмо» и «Входящий email» у вас будет переключаться статус – тем самым, при наличии активности по лиду (переписка, звонок) бизнес процесс будет прерываться. Блок-схема работы указана ниже: Настройка бизнес - процесса Итак, переходим к разбору полетов. Открываем CRM → Настройки → Автоматизация → Бизнес - процессы. В разделе «Лид» нажимаем добавить шаблон: даем первичное название и описание шаблону, предварительно сняв галочки на параметру автоматического запуска (запускать бизнес процесс мы будем изнутри другого процесса). Скачать бизнес – процесс для лидов в Битрикс24 Переходим во вкладку «Переменные» и создаем две служебных переменные, нажав «Создать переменную»: Идентификатор mail_choose Название: - выбор письма для отправки; Описание: - переменная содержит в себе либо 1, либо 2. В зависимости от значения, Заказчику будут отправляться разные письма; Тип: - целое число; Значение по умолчанию: - 0; Идентификатор count Название: - счетчик отправок; Описание: - когда клиенту будут отправлены 2 формата письма - мы будем увеличивать значение этой переменной на 1; Тип: - целое число; Значение по умолчанию: - 0; Общая структура нашего бизнес – процесса следующая: Первый элемент – «Цикл». Условно говоря, это блок, в котором задается некое условие, и, до тех пор, пока это условие выполняется, все элементы внутри цикла будут прогоняться снова и снова. Лишь в том случае, когда условие не выполнится, цикл будет завершен. В нашем случае условием «Цикла» будет статус лида. Пока он равен статусу «Дожимаем лида» - цикл жив: Итак, цикл начинается. Первым действием мы увеличиваем переменную mail_choose на 1 (ее значение по умолчанию 0). Это нужно для выбора письма, которое мы будем отправлять лиду. Для этого, мы выбираем блок «Изменение переменных», выбираем переменную «Выбор письма для отправки» и приравниваем ее к значению =({=Variable:mail_choose}+1). Переменная будет увеличена на 1. Добавляем блок «Пауза в выполнении». Здесь мы будем ставить бизнес – процесс на паузу на 3 рабочих дня. В разделе «Режим» выбираем чек-бокс «Время» и в поле «Дата» добавляем следующий код: =addworkdays({=System:Now}, 3) Приступаем к отправке. Данный блок будет отработан только после паузы в 3 рабочих дня. Первым делом, нам надо убедиться, что количество отправленных писем клиенту не равно 6 (мы не хотим отправлять клиенту больше 6 писем с напоминанием о себе). Счетчик с идентификатором count увеличивается каждый раз, когда клиенту отправляется четное письмо. Это значит, что уходит первое письмо – счетчик не увеличивается. Уходит второе – прибавляем 1 к переменной count. Уходит третье – ничего. Уходит четвертое - + 1. И так далее. В результате, когда переменная будет равна 3, мы будем завершать наш бизнес процесс. Если наш счетчик меньше 3, то мы переходим к выбору письма. Тут в игру вступает переменная mail_choose. Сейчас она равна 1 (мы увеличили ее в начале цикла). Поэтому, мы отправляем первое письмо и уведомление ответственному: После отправки уведомления бизнес процесс переходит в начало цикла. Там мы опять увеличиваем переменную mail_choose на 1, проходим паузу и условие. Теперь наша переменная равна 2, поэтому, мы отправляем лиду второй вариант письма: Второе письмо отправлено, и теперь, нам нужно обработать наши переменные: =({=Variable:count}+1) - увеличиваем счетчик отправок на 1; Выбор письма для отправки - приравниваем к 0; Вот и все. Теперь все происходит по новой, но переменная count = 1. Пока count не достигнет значения 3, цикл будет повторяться. Для этого, заранее настраиваем запуск этого бизнес – процесса при переключении статус лида на «Дожимаем лида». Давайте протестируем: переводим лида в нужный статус: О том, как создать запуск бизнес – процесса по переключению статус лида можете прочитать в этой статье. Через 3 дня нам (лиду) приходит первое письмо: И еще через 3 дня приходит второе письмо: Удачных полетов :)
img
Интеграция CRM – системы и корпоративной системы связи (телефонии) позволяет значительно улучшить параметры обслуживания ваших клиентов. Диапазон возможностей очень широк: прослушивание звонков в интерфейсе CRM, всплывающая карточка при входящем звонке от клиента, умная маршрутизация, которая позволяет адресовать звонок на ответственного менеджера, который закреплен за клиентом в CRM, исходящие звонки «по щелчку» мышки на номер клиента, или как его часто называют click – to – call и история звонков по каждому конкретному клиенту – все это доступно для бизнеса, который решил объединить систему управления взаимоотношениями с клиентом и офисную телефонию. . Интересно? Тогда мы рады поделиться обзором возможностей интеграции 1С CRM и IP – АТС Asterisk. Всплывающая карточка клиента При входящем звонке от клиента, в интерфейсе 1С, при совпадении номера звонящего появляется карточка контрагента. Параллельно, создается документ «событие» типа «телефонный звонок». Как видно на скриншоте, у контрагента настроен персональный менеджер. При включенной функции «Умная маршрутизация», звонок приходит прямо на указанного менеджера, минуя настроенные в Asterisk правила маршрутизации. Это означает, что если в вашей организации настроено интерактивное голосовое меню (IVR), или простое голосовое приветствие, то клиенту, у которого настроен персональный менеджер не придется слушать его – звонок сразу отправится на внутренний номер ответственного менеджера. В другом случае, если клиент звонит вам впервые, то оператору будет предложено создать нового контрагента. Важный момент, что когда вы нажмете на кнопку «Добавить контрагента», в появившейся карточке будет автоматически добавлен номер звонящего: Кстати, мы посчитали: при условии интеграции 1С и телефонии, время обработки входящего звонка уменьшается на 2 минуты – вам просто не нужно идентифицировать клиента, а затем вручную вбивать его пользовательские параметры для поиска карточки – система сразу покажет всю необходимую информацию. История звонков История звонков хранится по каждому контрагенту отдельно, а так же, есть унифицированный интерфейс, в котором можно посмотреть статистику звонков по всем операторам. В интерфейсе будут доступны как входящие, так и исходящие звонки. Помимо этого, вы можете прослушать аудио запись разговора. Важно:Сами аудио файлы хранятся на сервере IP – АТС Asterisk. По факту, на копке прослушать, будут расположены ссылки на аудио – записи в папке /var/spool/asterisk/monitor Итак, переходим во вкладку «История звонков», как показано ниже: Откроется список звонков. Значком слева, обозначено направление звонка – входящее, или исходящее. Помимо этого, в таблице мы видим дату и время начала и окончания вызова, его продолжительность в секундах, направление, ссылка на аудио – запись, ответственного пользователя, которые обработал вызов, и контрагента, с которым этот вызов связан. Вся информация представлена в наглядном и интуитивно понятном исполнении. Звонки из 1С Мы снова все посчитали, и можем сказать, что набор номер из 1С экономит от 15 секунд на исходящем звонке. Цепочка получается следующая: оператора нажимает на карточке контрагента на кнопку «Позвонить» В открывшемся окне видим все контакты по указанному контрагенту. Чтобы позвонить по номеру, достаточно левой кнопкой мыши нажать на телефон: Как только мы нажмем на номер телефона контрагента, зазвонит наш настольный телефон. Как только мы поднимаем трубку, происходит соединение с контрагентом. Умная маршрутизация Настройка умной маршрутизации происходит на уровне IP – АТС Asterisk. Для корректной работы функционала переключения вызова на менеджера, достаточно просто поставить галочку в настройках входящего маршрута.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59