O.
Пару минут назад как раз о Redis подумал.
Михаил Макарычев
Redis тоже БД :)
Безусловно, но более легковесная. Можно ещё memcache прикрутить
O.
С Redis поприятнее как по мне.
O.
Наверное потому, потому что ни разу с Mem... не работал.
O.
Ладненько, доберусь, проверь сам.
Anonymous
Раз уж зашла тема, поясните что лучше Редис или Мемкешд? Производительнее/удобнее
O.
Удобнее Redis. Это то, что знаю.
O.
Знаю, слышал, видел.
O.
Безопаснее от части.
Михаил Макарычев
Раз уж зашла тема, поясните что лучше Редис или Мемкешд? Производительнее/удобнее
Memcache удаляет данные совсем, если нет места. Redis в таком случае пишет на диск Оба хранят данные изначально в оперативной памяти
Anonymous
А по скорости?
O.
Не могу ничего сказать.
O.
Могу только в Google отправить :)
Anonymous
Кому интересно
Anonymous
https://anton.logvinenko.name/ru/blog/redis-vs-memcache-vs-memcached.html
Timur
Коль
Timur
https://storage.googleapis.com/themarket-sitemap/sitemap.xml
Alchemist
Кто нибудь знает, индексы по массивам в документах нормально в монге отрабатывают?
Sergey
смотря что в массиве лежит, если просто числа/строки, то нормально
Sergey
ну и смотря что считать нормальным
Alchemist
Есть документ entries[].tokens[].token
Alchemist
{ "v" : 2, "unique" : true, "key" : { "entries.tokens.token" : 1 }, "name" : "entries.tokens.token", "ns" : "demo", "sparse" : true },
Alchemist
Индекс
Alchemist
У меня COLLSCAN был в explain. Сейчас понял, что это я накосячил в запросе
Alchemist
Да у меня блин проблема. Монга сжирает всю память (16 гигабайт). Куда можно посмотреть, что память утекает? Есть мысль что слишком много течет в in-memory cache. Но подтвердить это как то не получилось
yopp
https://docs.mongodb.com/manual/reference/configuration-options/#storage.wiredTiger.engineConfig.cacheSizeGB
Alchemist
Я это читал
Alchemist
Можно пояснить?
Alchemist
Свой ответ
Alchemist
@dd_bb якорь в ссылке не отработал. Это я тоже читал, но мне нужно не ограничить кеш, а убедиться для начала, что проблема именно в этом
Igor
разве, уменьшив кэш, не получится подтвердить, течет ли монга в него или нет? если уменьшите кеш до 8 гб, а монга будет продолжать жрать 16 гб, значит, проблема не в нем (или не только в нем)
yopp
кроме кеша WT ещё есть дисковый кеш
yopp
free -m, rss у mongod и вот это всё
yopp
опционально: https://github.com/y8/mongo_collection_exporter
Alchemist
кроме кеша WT ещё есть дисковый кеш
это смотрел, дисковый кеш со временем отпускает, и все пространство заполняет rss
Alchemist
щас еще один контейнер ебнется )
Alchemist
просто написано что этот кеш занимает не больше 50% RAM
Alchemist
чего тогда он все схавал?
yopp
если это в контейнере, то лучше выставить размер кеша руками.
yopp
хотя в целом не очень понятно что у тебя происходит
CC-BY-SA-4.0/Docker-ce30.0
@dd_bb
Aleksey
@yarossl ?
yopp
он уже не ответит
Aleksey
надо было ro
yopp
зачем?
Aleksey
раз теперь так можно
yopp
украл, выпил, в банлист
yopp
а смысл?
Aleksey
ну ок :)
yopp
вообще чот в телеграмме второй день дискотека, как в ирц
yopp
Оппа: https://jira.mongodb.org/browse/SERVER-27848
yopp
в 3.6 будут хинты для агрегаций!
Alchemist
Завтра попробую выставить. Хотя, конечно, мне хотелось глазами посмотреть что память действительно утекает и куда она утекает
yopp
там есть cache usage per collection / per index
yopp
ну и активность кеша по коллекциям/индексам
Alchemist
Да вот чет на проде страшновато что то непонятное подключать :)
yopp
оно по своей сути делает три операции: listDatabase, listCollection и collStats. ну и ещё из local.oplog.rs читает последний и первый документ.
yopp
экспортер никуда не пишет, ей хватит clusterMonitor роли (как у mms), плюс listCollection на db: '', collection:'' и cluster: true и find в local.oplog.rs
yopp
о, сюда положу, пока до документации не добрался: #exporter #roles db.createRole({ role: "grafanaExporter", privileges: [ { resource: { db: "", collection: "" }, actions: [ "listCollections" ] }, { resource: { cluster: true }, actions: [ "listCollections" ] }, { resource: { db: "local", collection: "oplog.rs" }, actions: [ "find" ] } ], roles: [] }) db.grantRolesToUser(<username>, [ { role: "grafanaExporter", db: 'admin' }, { role: 'clusterMonitor', db: 'admin' } ])
Alchemist
Класс. Спасибо
Anonymous
У меня есть mongoose схема Post для статей в блоге Как мне сохранять текст из textarea, чтобы выводить потом текст по абзацам ? 1) делать массив через split('\n') и сохранять в монго как массив строк(абзацев)? или 2) делать массив после получения текста из базы и передавать на страницу отдельно ?
Alexey
Сохранять текст с \n или жарить в редис и хранить ключи... И не в монге :). А вообще вопрос не по теме
yopp
Хватит топить за редис
Alexey
Это как вариант. Просто кусок html там хранить. Можно выбрать и другое хранилище - я работал с этим, мне понравилось
yopp
Сохранять текст с \n или жарить в редис и хранить ключи... И не в монге :). А вообще вопрос не по теме
исходить их того что в монге лучше хранить так, как ты будешь читать. Т.е. необходимые трансформации лучше делать при вставке. Разбивка на параграфы не очень сложная трансформация. Если в дальнейшем «параграфы» останутся только эфемерная еденицей, то можно вообще хранить as is и разбивать на параграфы уже при чтении. Если параграфы будут использоваться шире чем просто «отобразить», то есть смысл подумать о том как именно они будут использоваться и исходя из этого выбрать наиболее эффективную схему. Массив строк или массив документов
yopp
Это как вариант. Просто кусок html там хранить. Можно выбрать и другое хранилище - я работал с этим, мне понравилось
Это чят про монгу, а не про редис. Если у тебя нет весомых аргументов почему для этой задачи лучше использовать другое хранилище, то не надо его совеовать. «Мне понравилось» не аргумент совершенно.
Alchemist
Огонь, кеш помог
Alchemist
Видимо докер просвечивал память хоста как объем выделенной памяти
Alchemist
15 из 16 гб данных под кеш это нормально?
Alchemist
Не возникнет каких нибудь неочевидных проблем, что самой монге не хватит оперативной памяти под какие то нужды
Alchemist
При репликации, например