ты в какой книжке эту хуйню прочитал милок?
master, можно еще попробовать на основе sqlite сделать …
Форум → Программирование → PHP для идиотов → Кэширование в память
Кэширование в память
Страницы: ← Предыдущая страница • Следующая страница →
-
24 декабря 2011 г. 22:19, спустя 4 часа 25 минут 30 секунд
Сапожник без сапог -
24 декабря 2011 г. 22:27, спустя 7 минут 19 секунд
ответ простой блеядь!Меня интересует такой вопрос. Допустим мы ставим флаг, что кешь генерируется (т.е. нужно отдавать данные не из кеша), но как сделать, что бы этот флаг сам не стал причиной сбоя?
Ты в кеш ноду кладешь не САМО значение, а структуру видаstruct {
data;
expires;
}
При извлечении из кеша проверяешь time () > expires, если тру, то проверяешь есть ли ключ аля $mycachekey + ".lock" к примеру, если есть - нихуя не делаешь, если нет, то устанавливаешь этот ключ в тру с expires (кеш сервера тут, не структурным, чтобы при фейле ключ стерся на всякий), expires у структуры ставишь на time() + 10 например (ну или сколько тебе точно хватит чтобы произвести ребилд ноды) и записываешь эту структуру назад, ребилдишь данные (по возможности в фоне если позволяет язык, чтобы юзеру отдать быстрый ответ ну или тп), записываешь новую структуру в ноду ключа, удаляешь лок, все готово. Наложений по ребилду клча не будет 100%, пока ребилдится ключ все данные будут доступны из старого кеша, волки сыты, сучки целы :-)
ну а самой структуре глобальный expires ставим на например expires + 60 - то есть на расчетное время которое кеш дожен работать + запас на ребилд в 60 секунд.
кто не понял объяснений тот блядь ЛОХ и пусть выбирает себе другую профессиюСапожник без сапог -
-
25 декабря 2011 г. 0:55, спустя 7 минут 25 секунд
ну как видишь не для всех похоже
какое-то капитанствоСапожник без сапог -
-
25 декабря 2011 г. 14:38, спустя 13 часов 33 минуты 49 секунд
phpdude, дохера операций в которых могут быть конфликты, ты нихуя не ушел от конфликтов… -
25 декабря 2011 г. 17:11, спустя 2 часа 33 минуты 6 секунд
не кешируй их да и все. а конфликты это дело такое. ты же теоретик то, ты то понятно ссышь чото сделать :D
phpdude, дохера операций в которых могут быть конфликты, ты нихуя не ушел от конфликтов…Сапожник без сапог -
25 декабря 2011 г. 17:28, спустя 16 минут 50 секунд
phpdude, причем тут, ты нормально написал. Но суть вопроса в том, как именно. Мне кажется все равно нужен будет какой то лок. Допустим открывать файл для записи в случае "одновременного" обращения. В таком случае непосредственно запись будет происходить при обновлении и при "одновременном" доступе, что не повлияет на производительность. Зато лок будет на самом низком уровне и тут "атомарность" обновления кеша будет соблюдена. Про sqlite я мож и загнул, но суть та же.. )) понял бля :) -
25 декабря 2011 г. 18:03, спустя 35 минут 29 секунд
kostyl, открывать файл на системе которую кешируют от нагрузки - атомарная операция? ты чо сала переел? :DСапожник без сапог -
25 декабря 2011 г. 21:08, спустя 3 часа 4 минуты 27 секунд
блядь, я же написал про семафорыне всё полезно, что в swap полезло -
26 декабря 2011 г. 1:29, спустя 4 часа 21 минуту 5 секунд
Кеширую по старинке в текстовые файлы, иногда есть выйгрыш в скорости, особенно с тяжелыми sql-запросами или какой-нибудь хуйней -
26 декабря 2011 г. 2:23, спустя 54 минуты 8 секунд
phpdude, ну это я описал пример, когда все равно кешь в файле хранится. Да это тупо, но блядь я че и спросил - за неименеем лучших примеров. Вот мастер предложил семафоры - да, не плохо, но может есть еще варианты? -
29 декабря 2011 г. 18:25, спустя 3 дня 16 часов 2 минуты
У меня и запросы не тяжелые, но с кэшиком всяко немного быстрее получается. -
31 декабря 2011 г. 16:31, спустя 1 день 22 часа 5 минут
master,
Ни одна реляционная и nosql базы не выдержит, когда речь пойдет о сотне тысяч посетителей и миллионов запросов.
Можно сослаться на собственное кэширование, но если выборка для конкретного объекта к примеру 20 SQL запросов, а в качестве ключа используется сам запрос, то размер такого кэша становится несравним с
ID: DATA
в memcache к примеру, для чего собственно он и был создан - это эволюция, а не дополнение -
1 января 2012 г. 14:54, спустя 22 часа 22 минуты 45 секунд
arvitaly, исчезнине всё полезно, что в swap полезло
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!