По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Если у тебя нет Winbox, или в целом ты «консольщик» - эта статья для тебя. Рассказываем, как обновить Mikrotik через консоль /p> Выбор канала Существует несколько каналов, через которые вы можете тянуть пакеты с обновлениями. Мы рекомендуем использовать текущую («current») ветку – она стабильна и надежна в работе. Если считаете так же, даем команду: system package update set channel=current Если вы рисковый парень, то можете использовать канал кандидатов на релиз («release candidate») :) Тут вы можете протестировать новые фичи, но лучше в «продакшн» системах его не использовать: system package update set channel=release-candidate Проверяем обновления Канал выбран. Проверяем, доступны ли для нас обновления: system package update check-for-updates Устанавливаем обновления Если новая более новая версия будет доступна, загружаем его: system package update download Новый пакет будет установлен после перезагрузки устройства (обновление произойдет на этапе загрузки Mikrotik). Финальный штрих – перезагрузка: system reboot
img
Порой при попытке подключения к БД в режиме SQL аутентификации, вы можете получить следующую ошибку: A connection was successfully established with the server but then an error occurred during login process. (Provider: Shared Memory Provider, error: 0 – No process is on the end of the pipe.) (Microsoft SQL Server, Error: 233). У нас есть пару способов, которые могут помочь в решение этой проблемы. Включить TCP/IP стек По умолчанию, SQL сервер использует порт 1433, которые использует в качестве транспорта TCP. Нам нужно включить TCP/IP в настройках Configuration Manager: Подключитесь к SQL серверу; Откройте SQL Server Configuration Manager. Перейдите в настройку SQL Server Network Configuration → Protocols for %название%; Проверяем, чтобы TCP/IP был включен (Enabled). Если выключен, то дважды левой кнопкой мыши нажмите на опцию и выберите Enabled = Yes; После указанного вида работ службу (сервис) SQL необходимо перезагрузить. Named Pipes Так называемый Named Pipes (именованный канал) обеспечивает взаимодействие между процессами на одной машине, без снижения производительности. Эту опцию нужно включить, если вы столкнулись с 233 ошибкой: Подключитесь к SQL серверу; Откройте SQL Server Configuration Manager. Перейдите в настройку SQL Server Network Configuration → Protocols for %название%; Проверяем, чтобы Named Pipes был включен (Enabled). Если выключен, то дважды левой кнопкой мыши нажмите на опцию и выберите Enabled = Yes; Данная опция соседствует с параметром TCP/IP, который мы включали ранее (см. скриншот выше). Гре***ый фаеравол! На самом деле, фаервол это хорошо. Он защищает от атак наши системы. Но порой, из – за него у нас не работают нужные компоненты, и, в том числе, появляется ошибка 233. Добавим 1433 порт в исключения. Для этого: Запустить службу WF.msc (открыв меню Пуск и набрав в поиске); В настройка Windows Firewall with Advanced Security, слева, нажмите на Inbound Rules, после чего нажмите на New Rule в открывшемся меню справа; В Rule Type выбираем Port, нажимаем Next; В разделе Protocol and Ports, укажите TCP. В пункте Specific local ports указываем 1433. Нажмите Next; В разделе Action (действия, что делать?), выбираем Allow the connection, и нажимаем Next; В разделе Profile применяем политику для всех видов (Domain, Private, Public). Важно! - настройка данного пункта зависит от ваших корпоративных политик безопасности и мы не рекомендуем открывать Public; В финальном окне даем имя нашему правилу, например, Allow inbound SQL; Проверяем удаленные подключения Важно не забыть разрешить удаленные подключения к серверу. Сделать это не трудно: Открываем SQL Server Management Studio и подключаемся (доменная или SQL аутентификация); Выбираем сервер (верхняя сущность в иерархии слева, в меню), нажимаем на него правой кнопкой мыши и выбираем пункт Properties; В открывшемся окне нажимаем на Connections. В меню настройки нажимаем на чекбокс Allow remote connections to this server; Нажимаем OK; Перезагружаем сервис SQL, проверяем, пропала ли ошибка? :)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59