Anatoliy
ну - ожидается строка получен нил
Anatoliy
и куда же урл делся непойму если я его указал, все как положено
Snusmumriken
Покаж код ))
Anatoliy
r, c, h, s = http.request{ method = "GET", url = "http://api.telegram.org/bot..." , proxy = "127.0.0.1:9050", } print (r, c, h, s)
Snusmumriken
Хмммм
Anatoliy
Многотиочие после bot это убрал просто свою инфу
Snusmumriken
Добавь принтов в саму сокетную либу, а потом уберёшь
Anatoliy
"Добавь принтов в саму сокетную либу, а потом уберёшь" - для отладки? в каких там местах принты добавить что вывести?
Saphire
Snusmumriken
Saphire
Это просто муд клиент :3
Snusmumriken
Помню игрушки на основе MUD. Типа шахмат или космических баталий по почте.
Saphire
MUD клиент, который работает как irc сервер
Saphire
Он не на луа, так что оффтоп :)
Lucky
Эх
Lucky
Кстати о ботах
Lucky
https://vk.com/wall-18020281_153
Lucky
Игры пишутся на Lua
Mark ☢️
https://www.linux.org.ru/news/conference/14819489
Lucky
хм, и от лора польза есть иногда - узнал о LuaTeX
Super
Ребята, подскажите плиз, есть ли что-то вроде resty redis для работы с aerospike? Хочу обращаться к нему из луа.
Snusmumriken
Ну в целом, есть компилируемая фиговина: https://github.com/aerospike/client-lua Она цепляет сишные интерфейсы до aerospike.
Super
спасибо, я ее тоже нашел. только я смотрю она последний раз обновлялась год назад.
Snusmumriken
Какая трагедия )) Если у aerospike с тех пор не менялся протокол, или тебе не нужны СверхСовременныеФичи, которые поддерживаются только СамойНовойВерсиейКлиента — выбор очевиден.
Snusmumriken
ПыСы: у SQL, протокол не менялась последние лет двадцать. Оно примерно одинаковое. Как раз за счёт строчных запросов.
Super
ну вообще я бы не отказался от самых современных фич ) вот например у редиса появился BITFIELD в последних версиях - очень классная штука.
Snusmumriken
Ты смотрел внутрь либы resty-redis? : ) Она автоматически поддерживает новые команды.
Super
да, глядел, там надо я так понимаю дописать команды и все будет хорошо
Snusmumriken
Нет, не надо дописать команды. Они уже есть.
Super
попробую тогда поставить эту либу. я вообще хочу попробовать aerospike на замену или дополнение к редису. т.к. редис ограничен памятью, а эта штука может работать с ссд.
Snusmumriken
Ха, пардон, не в resty-redis а кое где ещё "уже есть все прошлые и будущие команды". Просто кодогенерация.
Super
ну я в итоге пользуюсь eval и внутри редиса исполняю луа код. так точно работает.
Super
чтоб не возиться с модулем
Super
вообще в редисе я такое видел:
Super
local common_cmds = {
Snusmumriken
Ну типа: function redis_cli:__index(key) if not rawget(self, key) then self[key] = function(self, command, ...) self:request(command, ...) end end return self[key] or self.class[key] end Кодогенерация. Если у нас нет такой функции — мы её создаём и приводим к общему виду. Нужен только небольшой набор исключений, когда команды имеют хитрую структуру.
Super
понял, спасибо
Snusmumriken
Ааа, в resty-redis'е то же самое, значит всё так. Ты такой вызвал несуществующий метод, и под него генерируется функция. А если он ещё и имеет стандартный вид — это сработает.
Snusmumriken
В общем, он таки поддерживает все старые и ещё несуществующие команды стандартного вида, а под особую фигню — надо таки писать исключения. К счастью, это редко встречается. Круто, да?
Super
ну да, это удобно
Super
но битфилд нестандартная команда
Snusmumriken
Ммм. Не, вполне себе стандартный вид. redis:bitfield('mystring', 'SET', 'i8', '#0', 100, 'i8', '#1', 200) )) Должно прокнуть.
Super
понял, тогда попробую ее и из модуля использовать. но в принципе eval это выход.
Snusmumriken
Ну, технически это конечно выход, но зачем тогда нужны базы данных? : )
Super
local res, err = red:eval(lua_script, 1, cjson.encode(data))
Super
я имею в виду что-то вроде такого
Super
а в lua_script внутри redis.call("BITFIELD",...
Super
на самом деле если там последовательность команд, так лучше сразу пачкой кинуть их редису
Snusmumriken
Ну просто это ещё надо синхронизировать, какой хеш получил такой-то скрипт у данной конкретной базы данных и т.п. Если это разворачивать на новом месте — появляются проблемсы. Если скрипт дёргает несколько (одинаковых по структуре) баз данных — ему надо держать отдельные хеши скриптов под каждую (хранить в самой базе, хе). Ну и безопасность, вроде, частично летит.
Super
посмотрел аэроспайк клиент, вроде все просто. буду пробовать ставить. а не подскажешь какую-то еще бд, которая nosql и хорошо работает с диском? я нашел ardb и ssdb и вот aerospike.
Super
при этом первые 2 поддерживают редис интерфейс, что плюс. можно resty redis просто использовать
Super
ага, глянул ее. не видел ее ранее. но лучше конечно опенсорсное решение найти.
Snusmumriken
Ну так-то в чём проблема а) с sql-базами б) с mongo и всяким таким популярным
Super
у меня просто задача нестандартная - много наборов данных отдельных (млн 500 например или еще больше). например, набор из 200 чисел {123,343,545}. и мне просто их надо вытаскивать и использовать. иногда надо одно из этих чисел заинкриментить.
Snusmumriken
SQL создавался ровно для таких табличных наборов. И вытаскивания данных с инкрементациями.
Super
да, но чем больше данных, тем труднее достается конкретный набор данных
Super
вставка дольше будет идти
Snusmumriken
У тебя счёт на наносекунды?
Super
у меня просто очень уж много данных и запросов к ним
Super
общий размер редиса в памяти примерно 300 гигабайт
Super
это при том, что я уж дико ужимаю
Super
т.е. редис глупый и не умеет хранить числа как числа (key у него это string), то я своеобразным образом зипую числа и только потом как ключи использую
Snusmumriken
Ты уверен что SQL не подойдёт? Там как бы и не планируется "вставка в середину", в 99% случаев вставка в конец таблиц, это нормальный кейс. Оно как раз хорошо работает с большими объёмами, но, кто бы мог подумать, чтения происходят с диска, поэтому оно в любом случае в тысячу раз медленнее редиса. Но это со всеми дисковыми базами.
Super
там на самом деле может быть вставка в середину. т.е. конкретный набор чисел заменяется новым.
Super
да, думал об этом, на самом деле думаю работать с sql базой надо иначе
Super
ну я имел в виду сами файлы
Super
как оно там их на диске хранит, наверняка резервирует пространство какое-то
Super
скажем было 100 чисел, а стало 150 в этом наборе
Snusmumriken
Мне страшно. Ууууу. Что это за задачи такие?
Super
да любые каталоги данных
Super
там могут быть теги и их могут быть десятки миллионов
Super
каждый тег хранит определенный набор данных
Super
если сайтов скажем 1000, это уже выходит 10 млн * 1000 наборов данных
Super
а если я скажем решил отдельную статистику хранить для китайцев и американцев, еще умножаем на 2
Snusmumriken
С тегами, помнится, отдельные запросы.
Super
задача поиска решается у меня sphinx