Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 18:49
Оценка: -3
Коллеги,
Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.
Re: Зачем нужен Redis?
От: СвободуАнжелеДевис СССР  
Дата: 09.01.19 18:56
Оценка: +1
G>Коллеги,
G>Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
G>Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.

Распределённый кэш.
Нет времени на раскачку!
Re: Зачем нужен Redis?
От: Danchik Украина  
Дата: 09.01.19 18:57
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Коллеги,

G>Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
G>Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.

Да кагбы понятно, если не как база данных то бесплатно это:
Message Queue
Cache

Sql Server в те времена был слишком платным, а развернуть MMQ был еще тот квест (по слухам).
Re[2]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 19:34
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, Gattaka, Вы писали:


G>>Коллеги,

G>>Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
G>>Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.

D>Да кагбы понятно, если не как база данных то бесплатно это:

D>Message Queue
— реббит, кафка

D>Cache

? зачем? оперативка приложения.

D>Sql Server в те времена был слишком платным, а развернуть MMQ был еще тот квест (по слухам).

Что это такое?
Re[2]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 19:35
Оценка: -1
Здравствуйте, СвободуАнжелеДевис, Вы писали:


G>>Коллеги,

G>>Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
G>>Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.

САД>Распределённый кэш.

Окей, простой вопрос на который вам не составит труда ответить. Зачем нужен распределенный кеш при наличии БД?
Re: GarryIV, я расцениваю это как успех
От: Gattaka Россия  
Дата: 09.01.19 19:38
Оценка: +2 :)))
GarryIV моментально влепил минус. Без аргументов, без ответа. Это успех. В священных войнах это успех.
Вполне возможно, что одним только своим вопросом я отправил опонента в больницу. Он успел только поставить минус и схватился за сердце... "Ааа.... мой редис, редис... сердце!" И упал со стула.
Успех! Хорошо! Как же я силен в этих самых войнах священных.
Re: Зачем нужен Redis?
От: A_l_e_x_e_y Россия  
Дата: 09.01.19 19:43
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Коллеги,

G>Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
G>Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.

Sorted Sets.
Re[2]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 19:55
Оценка:
Здравствуйте, A_l_e_x_e_y, Вы писали:

A__>Здравствуйте, Gattaka, Вы писали:


G>>Коллеги,

G>>Не сочтите за троллинг. Реально не особо понятно чем он луче просто Sql Server. Мне думается, что те аргументы что вы приведете в пользу Redis я смогу опровергнуть опять же аргументированно. Давайте попробуем?
G>>Итак вопрос, назовите use-case где Redis необходим. Давайте наберем несколько таких Use Cases.

A__>Sorted Sets.

Что sorted sets? Это алгоритм такой, для использования которого не нужно ставить себе Redis. Между прочим.
Re[3]: Зачем нужен Redis?
От: Anton Batenev Россия https://github.com/abbat
Дата: 09.01.19 20:10
Оценка: +1
Здравствуйте, Gattaka, Вы писали:

G> D>Message Queue

G> — реббит, кафка

Кролик крайне плохо работает в cross-dc окружении (особенно когда начинаются проблемы с сетью — проще сказать, что он не работает). Кафка — это Java, ZooKeeper, кровь, кишки, сожрало память, завалило трейсами.

Сами по себе инструменты неплохие, если правильно их готовить, но нишу Redis как простого тупого надежного решения не закрывают.

G> D>Cache

G> ? зачем? оперативка приложения.

Тут, вероятно, имелся ввиду distributed cache. Но даже в рамках одного хоста далеко не всегда есть возможность или целесообразность делать кэш в памяти приложения (например для prefork модели или микросервисов).
Бэкапимся на Яндекс.Диск
Re[3]: Зачем нужен Redis?
От: A_l_e_x_e_y Россия  
Дата: 09.01.19 20:21
Оценка:
Здравствуйте, Gattaka, Вы писали:

A__>>Sorted Sets.

G>Что sorted sets? Это алгоритм такой, для использования которого не нужно ставить себе Redis. Между прочим.

В редисе есть его качественная реализация что позволяет не реализовывать его самому. На сколько мне известно(конечно я могу ошибаться) в распространённых SQL-базах такой функционал отсутствует.
Re[3]: Зачем нужен Redis?
От: СвободуАнжелеДевис СССР  
Дата: 09.01.19 20:26
Оценка:
САД>>Распределённый кэш.
G>Окей, простой вопрос на который вам не составит труда ответить. Зачем нужен распределенный кеш при наличии БД?

это может быть необходимо при микросервисной архитектуре.
но в целом, в редис кладут денормализованные данные, и вытащить сущность по ключу значительно быстрее чем из сиквела с кучей джойнов.
Нет времени на раскачку!
Re[4]: Зачем нужен Redis?
От: bzig  
Дата: 09.01.19 20:56
Оценка: 2 (2) +2
САД>но в целом, в редис кладут денормализованные данные, и вытащить сущность по ключу значительно быстрее чем из сиквела с кучей джойнов.

Вот тут чуваки выкинули Монго, взяли Постгрис и хранят там JSON

https://www.theguardian.com/info/2018/nov/30/bye-bye-mongo-hello-postgres
Re[5]: Зачем нужен Redis?
От: СвободуАнжелеДевис СССР  
Дата: 09.01.19 20:57
Оценка:
САД>>но в целом, в редис кладут денормализованные данные, и вытащить сущность по ключу значительно быстрее чем из сиквела с кучей джойнов.
B>Вот тут чуваки выкинули Монго, взяли Постгрис и хранят там JSON
B>https://www.theguardian.com/info/2018/nov/30/bye-bye-mongo-hello-postgres

как key-value любая база работает быстро.
но я думаю что основной посыл автора был в другом.
Нет времени на раскачку!
Re[4]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 20:59
Оценка: :)
Здравствуйте, A_l_e_x_e_y, Вы писали:

A__>В редисе есть его качественная реализация что позволяет не реализовывать его самому. На сколько мне известно(конечно я могу ошибаться) в распространённых SQL-базах такой функционал отсутствует.

Распространенные базы данных позволяют тебе не думать об алгоритмах. Ты говоришь что тебе нужно, а они уже сами подбирают алгоритм. И уже сами решают как это сделать.
Re[4]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 21:03
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, Gattaka, Вы писали:


G>> D>Message Queue

G>> — реббит, кафка

AB>Кролик крайне плохо работает в cross-dc окружении (особенно когда начинаются проблемы с сетью — проще сказать, что он не работает). Кафка — это Java, ZooKeeper, кровь, кишки, сожрало память, завалило трейсами.


AB>Сами по себе инструменты неплохие, если правильно их готовить, но нишу Redis как простого тупого надежного решения не закрывают.


G>> D>Cache

G>> ? зачем? оперативка приложения.

AB>Тут, вероятно, имелся ввиду distributed cache. Но даже в рамках одного хоста далеко не всегда есть возможность или целесообразность делать кэш в памяти приложения (например для prefork модели или микросервисов).

Вот зачем давать такие многозначительные ответы, чтобы люди потом гадали что имелось в виду? Да чтобы казаться умнее. Потому как если много скажешь — сразу станет понятно, что аргументов то и нет.

И чем же он так хорош как ditributed cache? Как у него с отказоустойчивостью. Если значение попало на одну ноду редиса, то как скоро оно доберется до другой ноды?
В обще зачем нужен distributed cache? Можно конкретный пример?
Re[4]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 21:05
Оценка:
Здравствуйте, СвободуАнжелеДевис, Вы писали:


САД>>>Распределённый кэш.

G>>Окей, простой вопрос на который вам не составит труда ответить. Зачем нужен распределенный кеш при наличии БД?

САД>это может быть необходимо при микросервисной архитектуре.

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

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

Так сделайте materialized view. Есть такое понятие buffer pool. Он работает быстрее чем редис.
Re[5]: Зачем нужен Redis?
От: СвободуАнжелеДевис СССР  
Дата: 09.01.19 21:10
Оценка:
САД>>это может быть необходимо при микросервисной архитектуре.
G>Микросервисная архитектура тут не имеет каких-либо особенностей, отличающей с этой точки зрения от другой архитектуры.

шаринг данных между микросервисами. один из вариантов.

G>Ничего такого микросервисная архитектура не привносит, чтобы нужно было использовать redis. Либо пример конкретный в студию плиз.


есть 5 активностей. мы должны прогнать все их 5 через какой-то кусок данных. каждая активность — отдельный микросервис.
что бы за этими данными не ходить постоянно в сиквел, они лежат в редисе, после того как вся работа будет проделана, данные сохранятся в сиквел.

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

G>Так сделайте materialized view. Есть такое понятие buffer pool. Он работает быстрее чем редис.

материализованные вьюхи не всегда работают. особенно если логика выборки сложнее чем обычный селект. а еще бывают динамические запросы в базу
структура базы не всегда может быть нормализована.
Нет времени на раскачку!
Re[5]: Зачем нужен Redis?
От: A_l_e_x_e_y Россия  
Дата: 09.01.19 21:14
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Распространенные базы данных позволяют тебе не думать об алгоритмах. Ты говоришь что тебе нужно, а они уже сами подбирают алгоритм. И уже сами решают как это сделать.


Ну хорошо. Допустим нам нужно сделать рейтинг игроков онлайн игры обновляемый в реальном времени. Это вполне себе жизненная задача.
Этот рейтинг должен уметь обрабатывать изменения количества очков в реальном времени, выдавать место в рейтинге по идентификатору игрока, количество очков по идентификатору игрока и идентификатор игрока по месту в рейтинге... и делать всё это максимально быстро(и конечно же нужно уметь эти данные сохранять на диске). Конечно же это можно реализовать поверх SQL-базы(ну или скажем MongoDB), но тогда придётся принести в жертву эффективность части из этих операций.
Re[6]: Зачем нужен Redis?
От: Gattaka Россия  
Дата: 09.01.19 21:15
Оценка: 1 (1)
Здравствуйте, СвободуАнжелеДевис, Вы писали:

САД>>>это может быть необходимо при микросервисной архитектуре.

G>>Микросервисная архитектура тут не имеет каких-либо особенностей, отличающей с этой точки зрения от другой архитектуры.

САД>шаринг данных между микросервисами. один из вариантов.

Единая точка отказа. Представим, что схема хранимых в редис данных меняется. Обновили для этого один из сервисов. Остальные 4 начали падать. Т.к. не могут десериализовать новые данный. Упс. Нужно было их тоже обновить.
Обновляем в таком случае все 5 микросервисов. Упс. Да это же старый добрый монолит, только разделенный на несколько исполняемых файлов, что лишь добавляет гемора. Айда на хабр писать про провал микросервисов и понеслась. Так оно и бывает.

G>>Ничего такого микросервисная архитектура не привносит, чтобы нужно было использовать redis. Либо пример конкретный в студию плиз.


САД>есть 5 активностей. мы должны прогнать все их 5 через какой-то кусок данных. каждая активность — отдельный микросервис.

САД>что бы за этими данными не ходить постоянно в сиквел, они лежат в редисе, после того как вся работа будет проделана, данные сохранятся в сиквел.
Недостаток описан выше. Это не микросервисы.

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

G>>Так сделайте materialized view. Есть такое понятие buffer pool. Он работает быстрее чем редис.

САД>материализованные вьюхи не всегда работают. особенно если логика выборки сложнее чем обычный селект. а еще бывают динамические запросы в базу

САД>структура базы не всегда может быть нормализована.
Окей. Тут скорее всего какая-то дичь с этой самой бизнес логикой. Нужно смотреть откуда взялись эти дикие джойны и постараться свести все к более простым джойнам быть может даже с помощью дублирования данных.
Re[7]: Зачем нужен Redis?
От: СвободуАнжелеДевис СССР  
Дата: 09.01.19 21:19
Оценка:
САД>>шаринг данных между микросервисами. один из вариантов.
G>Единая точка отказа. Представим, что схема хранимых в редис данных меняется. Обновили для этого один из сервисов. Остальные 4 начали падать. Т.к. не могут десериализовать новые данный. Упс. Нужно было их тоже обновить.

редис — это ин-мемори ДБ. с возможностью персистить данные.
если обновили сервиса — дропнули кэш. всё.

G>Обновляем в таком случае все 5 микросервисов. Упс. Да это же старый добрый монолит, только разделенный на несколько исполняемых файлов, что лишь добавляет гемора. Айда на хабр писать про провал микросервисов и понеслась. Так оно и бывает.


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

САД>>есть 5 активностей. мы должны прогнать все их 5 через какой-то кусок данных. каждая активность — отдельный микросервис.

САД>>что бы за этими данными не ходить постоянно в сиквел, они лежат в редисе, после того как вся работа будет проделана, данные сохранятся в сиквел.
G>Недостаток описан выше. Это не микросервисы.

нет никаких недостатков в данном случае.

САД>>материализованные вьюхи не всегда работают. особенно если логика выборки сложнее чем обычный селект. а еще бывают динамические запросы в базу

САД>>структура базы не всегда может быть нормализована.
G>Окей. Тут скорее всего какая-то дичь с этой самой бизнес логикой. Нужно смотреть откуда взялись эти дикие джойны и постараться свести все к более простым джойнам быть может даже с помощью дублирования данных.

нет необходимости извращаться, если есть редис

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