@nodejs_ru

Страница 2591 из 2748
Feodor
24.09.2018
10:54:20
Потому что хочет sql
А какая разница? Можно подумать кто-то руками будет запросы писать.

Daniel
24.09.2018
10:54:34
А почему не mongo?
Там 16МБ на один документ, а потом трудности.

Alexander
24.09.2018
10:54:40
Redis под нагрузкой теряет данные © Не моя цитата

Daniel
24.09.2018
10:54:57
И он большеват для хранения ключ-значение.

Google
Feodor
24.09.2018
10:55:08
Alexander
24.09.2018
10:55:10
Коллекции на что придуманы?

Daniel
24.09.2018
10:55:32
ID пользователей вк.

Их может быть 3, а может быть и 500000+.

Станислав
24.09.2018
10:55:53
Бэкапы можно делать на диск?
Да, можно. Там два типа бэкапов: механизм снимков и архивлоги, как в оракле.

А почему не mongo?
redis быстрее

Daniel
24.09.2018
10:56:30
При этом, когда приходит новый юзер ид, его сразу же нужно пихнуть к другим.

Feodor
24.09.2018
10:56:34
Я, конечно, не настоящий сварщик, но тут как раз прямо просится первая нормальная БД.

Станислав
24.09.2018
10:56:51
Реляционная БД хороша при сложной структуре данных. Особенно если нужны потом сложные выборки из этой сложной структуры.

Feodor
24.09.2018
10:58:09
Надо будет получать и обновлять коллекцию пользователей, лайкнувших конкретного котика, например. Звучит как задача для бд.

Станислав
24.09.2018
10:58:53
Надо будет получать и обновлять коллекцию пользователей, лайкнувших конкретного котика, например. Звучит как задача для бд.
Я на это отвечаю: "Ребят! Нужно хранить, получать и обновлять объекты с 10-250000 числами. Как это лучше всего сделать?"

Google
Станислав
24.09.2018
10:59:07
Про котиков разговора не было.

Feodor
24.09.2018
10:59:26
Если нет других уточнений, то первая нормальная форма бд. Аргументы против?

Daniel
24.09.2018
10:59:27
У нас это как динамический кэш, который содержит только массив с ID пользователей. Грузить каждый раз пользователей от ВК долго, а вот если их сохранить и обновлять с Callback API - мгновенно почти.

Feodor
24.09.2018
11:00:23
Время выборки при нормальных индексах будет милисекундное.

Daniel
24.09.2018
11:01:19
А если сервер ляжет, как поступать?

Feodor
24.09.2018
11:01:54
Редис умеет в персистентность, но зачем он тогда?

Daniel
24.09.2018
11:02:12
Их два у нас: основной и который управляет базами пользователей.

Станислав
24.09.2018
11:02:18
Время выборки при нормальных индексах будет милисекундное.
Динамический кеш ­­­- это не persistent storage. Это вообще другая задача.

Feodor
24.09.2018
11:02:37
Ну ок.

Я говорю исходя из решения схожей проблемы.

Возможно вам будет удобнее Redis, но он показал себя не очень в схожей задаче.

Проблемы возникли на 500 000 записей примерно.

Ну как проблемы... Время становилось ощутимым уже.

Станислав
24.09.2018
11:04:20
Мне сложно представить динамический кеш на 500 000 записей, но пусть.

Feodor
24.09.2018
11:04:41
Ну да.

А тут то же самое в чуть иной плоскости.

Хранить джейсоны с постоянным преобразованием такая себе идея.

Станислав
24.09.2018
11:06:43
Вообще, должна быть просто отдельнаяв логика на управление данными. Кеш кешем, там хранятся только самые новый или самые часто используемые данные. Или данные, которые потом (отдельным сервисом) нужно рассортировать, обработать и положить в персистент сторадж. Например, в реляционную БД со всеми индексами, ключами и прочим.

Google
Feodor
24.09.2018
11:08:15
Я про то, что тупо хранить без каких-либо вменяемых механизмов 250к чисел да ещё и обновлять их довольно таки сложно. Осообенно если вдруг есть какие-нибудь вырезки из середины.

Антон
24.09.2018
11:08:25
Ребят, в бд есть сущность room, у нее есть поле is_deleted и есть id. Можно ли как-то сделать, чтобы is_deleted == true у currentUser, а у остальных было false, пока они сами не удалят?

Feodor
24.09.2018
11:09:57
Когда придёт message_deny, будет вырезка из середины.
Вероятно стоит провести тестирование и понять, сколько объектов можно обслуживать через Redis и если устраивает то не париться, если проблемы, то смотреть в сторону СУБД и комбинаций.

Daniel
24.09.2018
11:11:58
Я придумал. Можно обновлять список раз в час, например, и когда этот список требуется. В остальное время просто сохранять изменения.

Антон
24.09.2018
11:12:50
?делать ещё одно поле?
мне вот сказали, что можно сделать чтобы is_deleted относилось к определенному room_member, но я не представляю как это может быть. Типа есть Room { id:123, is_deleted: false }При нажатии на удалить is_deleted становится truе, но оно же true для конкретного инстанса room, а не для конкретного юзера

Black Star
24.09.2018
11:13:09
Добвый день, как можно вот такой массив [1, 2, 3, 4, 5, 6, 7, 8] переобразовать на вот такой [[1, 2], [3, 4], [5, 6], [7, 8]]

Feodor
24.09.2018
11:15:02
Сидишь такой, думаешь про редисы, бороздящие просторы интернета и тут тебе задача на разбиение массивов от курсов каких-то)

Daniel
24.09.2018
11:15:02
Black Star
24.09.2018
11:15:11
Vitaly
24.09.2018
11:17:33
Cenator
24.09.2018
11:18:36
зачем
постарайся выражаться так чтобы тебя понимали

Vitaly
24.09.2018
11:18:53
если ты меня не понял, это твои проблемы

Google
Vlad
24.09.2018
11:19:08
??

Vitaly
24.09.2018
11:19:09
или тебе для этого библиотеку нужно подключить? ?

я уверен для этого найдется npm пакет.. ?

Cenator
24.09.2018
11:19:56
это не мои проблемы, так как это ты мне че-то там написал а не я тебе)

Ivan
24.09.2018
11:23:26


Feodor
24.09.2018
11:25:21
Ок, спс.
Я переживаю в такие моменты, что мог насоветовать чего-то не того. Смотри, в твоей постановке задачи Redis выглядит очень удобным вариантом но ты можешь воткнуться во время обновления, по крайней мере я втыкался именно в него. Попробуй сразу оттестировать время записи больших объектов, не исключено что твои 250к записей будут ворочаться не быстро. Возможно стоит заранее прикинуть какую-то очередь обновления. Если есть возможность при формированиии объекта быстро получать какие-то хэши или контрольные суммы, то их тоже старайся применить. Удачи.

Vitaly
24.09.2018
11:29:53
Добвый день, как можно вот такой массив [1, 2, 3, 4, 5, 6, 7, 8] переобразовать на вот такой [[1, 2], [3, 4], [5, 6], [7, 8]]
function chunk(arr, len) { return arr.reduce((acc, curr) => { if (acc[acc.length - 1].length === len) acc.push([]); acc[acc.length - 1].push(curr); return acc; }, [[]]); }

набросано на коленке

Cenator
24.09.2018
11:30:44
>мутировать аргументы функции

говнокод детектед

Vitaly
24.09.2018
11:30:55
где я что мутировал?

?

Cenator
24.09.2018
11:31:06
acc.push

Vitaly
24.09.2018
11:31:11
эм

Jack
24.09.2018
11:31:14
ребят кто нить работал с amazon redshift ?

Vitaly
24.09.2018
11:31:15
это initialValue

можешь сам попробовать, эксперт ?

Google
Cenator
24.09.2018
11:32:00
лол

Vitaly
24.09.2018
11:32:22
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

или хотя бы почитать документацию

Cenator
24.09.2018
11:32:47
блять сори но ты тупой если не понимаешь

return [...acc, []] вот так правильно

Vitaly
24.09.2018
11:33:19
какая, собственно, в данном случае разница?

Vitaly
24.09.2018
11:33:37
если бы я мутировал arr/len, можно было бы докопаться

Vitaly
24.09.2018
11:33:43
а это лишняя операция

зачем нужно каждый раз возвращать новый acc?

Cenator
24.09.2018
11:33:56
?
в жс принято мутировать аргументы?

Cenator
24.09.2018
11:34:30
нет
ну вот я это и объяснял

Сергей
24.09.2018
11:34:34
проще код — лучше

Vitaly
24.09.2018
11:35:12
в моем случае код проще

этот acc все равно нигде не должен использоваться

кроме как добавления результатов

Сергей
24.09.2018
11:35:29
Vitaly
24.09.2018
11:35:58
короче подключайте ramdajs и будет вам счатье ? я понял что нужно джаваскриптерам

Страница 2591 из 2748