Size: a a a

2020 May 07

ВС

Владимир Столяров... in Go-go!
pragus
просто in-memory кеш в приложении с ttl
о, кстати, а вы подобные кеши делаете просто на мапе и без очистки? или есть каккие хитрые трюки
источник

а

а кто это in Go-go!
Vladislav Milenin
hstore не при чем, речь про запросы как выше vs redis.get
ну так кто сравнивает таблицу в постгресе с неизвестными полями и индексами и простое кв хранилище
источник

p

pragus in Go-go!
Владимир Столяров
о, кстати, а вы подобные кеши делаете просто на мапе и без очистки? или есть каккие хитрые трюки
обычная мапа
источник

VM

Vladislav Milenin in Go-go!
а кто это
ну так кто сравнивает таблицу в постгресе с неизвестными полями и индексами и простое кв хранилище
по вашему index only scan не тягается с k-v?)
источник

x

x-foby in Go-go!
Vladislav Milenin
в чем сомнительность-то? или сложность?
Смотря что мы понимаем под сложностью.
Есть ли сложность поднять редис и воткнуться в него? Нет. Это не сложность.
Повышается ли сложность системы от добавления в неё ещё одного узла? Да, повышается. Это сложность.

А сомнительность в том, что под каждый кейс — своё решение (зачастую типовое, да, и не уникальное, но всё же своё).
Говорить, что сессии в условной посгре хуже сессий в редисе для системы, о которой мы ничего не знаем — это и есть сомнительное решение.
Ну будут там на сервере 10рпс, ну и зачем там редис?
И уж тем более странно считать, что редис для сессий — это стандарт.
Это не стандарт. Во всяком случае на сегодняшний день.
Думаю, что добрая часть интернета вообще до сих пор работает на связке php-сессии + mysql. И нормально себя чувствуют.
источник

а

а кто это in Go-go!
Vladislav Milenin
по вашему index only scan не тягается с k-v?)
так там еще фильтр
и агрегация
источник

VM

Vladislav Milenin in Go-go!
а кто это
так там еще фильтр
и агрегация
Фильтр был предложен как альтернатива ttl
источник

VM

Vladislav Milenin in Go-go!
x-foby
Смотря что мы понимаем под сложностью.
Есть ли сложность поднять редис и воткнуться в него? Нет. Это не сложность.
Повышается ли сложность системы от добавления в неё ещё одного узла? Да, повышается. Это сложность.

А сомнительность в том, что под каждый кейс — своё решение (зачастую типовое, да, и не уникальное, но всё же своё).
Говорить, что сессии в условной посгре хуже сессий в редисе для системы, о которой мы ничего не знаем — это и есть сомнительное решение.
Ну будут там на сервере 10рпс, ну и зачем там редис?
И уж тем более странно считать, что редис для сессий — это стандарт.
Это не стандарт. Во всяком случае на сегодняшний день.
Думаю, что добрая часть интернета вообще до сих пор работает на связке php-сессии + mysql. И нормально себя чувствуют.
даже если наплевать на 10-30х экономию, встроить редис кажется проще:
docker run ***, redis.NewClient, функция на добавление и получение ключа.

В случае с бд нужно создать табличку, sequence, index, еще и строк в клиенте будет в несколько раз больше.

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

про отказоустойчивость считаю странным аргумент, думаю бд легче положить чем redis
источник

N

Nioray in Go-go!
Vladislav Milenin
даже если наплевать на 10-30х экономию, встроить редис кажется проще:
docker run ***, redis.NewClient, функция на добавление и получение ключа.

В случае с бд нужно создать табличку, sequence, index, еще и строк в клиенте будет в несколько раз больше.

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

про отказоустойчивость считаю странным аргумент, думаю бд легче положить чем redis
Он же и говорит что сложность не в поднять редис и создать табличку. А в том что будет уже не 1 узел.
источник

SK

Simon Khaskelberg in Go-go!
Vladislav Milenin
даже если наплевать на 10-30х экономию, встроить редис кажется проще:
docker run ***, redis.NewClient, функция на добавление и получение ключа.

В случае с бд нужно создать табличку, sequence, index, еще и строк в клиенте будет в несколько раз больше.

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

про отказоустойчивость считаю странным аргумент, думаю бд легче положить чем redis
Но ты в любом случае уменьшаешь отказоустойчивость системы добавляя к ней ещё один сервис
источник

PT

Pax au Telemanus in Go-go!
Simon Khaskelberg
Но ты в любом случае уменьшаешь отказоустойчивость системы добавляя к ней ещё один сервис
вообще это спорно
источник

Д

Дмитрий in Go-go!
А кто сталкивался с проблемой, когда в vs code перестает отображается тип переменной и на каждую пишет - invalid type?
источник

VM

Vladislav Milenin in Go-go!
Я реально не представляю что должно пойти не так чтобы отвалился редис
источник

VM

Vladislav Milenin in Go-go!
За столько лет в проде 0 происшествий :))
источник

PT

Pax au Telemanus in Go-go!
Vladislav Milenin
Я реально не представляю что должно пойти не так чтобы отвалился редис
вы нагрузите под завязку и все рассыпется
источник

NK

Nur Kutlugallyamov in Go-go!
#reform
Проблема:
Куда-то деваются мои данные) В links есть key_id, но во время инсерта остается только один id.
Вопрос:
Есть человек, который шарит в reform`е?

Есть такой код:
args := make([]reform.Struct, len(links))
 for i, v := range links {
   fmt.Println(v.String())
   args[i] = &v
 }

 if err := tx.InsertMulti(args...); err != nil {
   tx.Rollback()
   return errors.Wrap(err, "LinkIntercomAndKeys")
 }
источник

PT

Pax au Telemanus in Go-go!
кароч мои 2 копейки такие
редис это + доп узел значит + сложность
с другой стороны
ты снимаешь нагрузку с диска который всегда проблемный
источник

RL

R L in Go-go!
Не подскажете как реализовать spell checker в веб-приложении, и чем это стоит делать (go или js например)?
источник

J

Jefferson in Go-go!
Подскажите, как реализовать след. функционал:
1) Жму html-кнопку, там в onclick() вызывается js-функция, которая шлёт пост-запрос на backend (напр. с помощью jquery:  $.post("/ping/");)
2) Backend на golang что-то выполняет, в зависимости от результата выполнения того или иного действия  отвечает строкой:
router.POST("/ping/", func(ctx *gin.Context) {
    ctx.String(200, "ok")
}
3) Js функция в зависимости от ответа сервера вызывает alert. Т.е если сервер ответил тип всё ок, вызывается alert("ok");, ошибка alert("error");

Не совсем понимаю как правильно ответить серверу и отловить это в js

Пример:
Юзер набирает сообщение, жмёт кнопку "отправить" и если он забыл указать имя юзера - выводится алерт "вы забыли указать имя пользователя, которому хотите отправить сообщение", если всё ок - алерт "сообщение отправлено"

Использую gin-gonic
источник

VM

Vladislav Milenin in Go-go!
R L
Не подскажете как реализовать spell checker в веб-приложении, и чем это стоит делать (go или js например)?
js
Другой чат
источник