Rails.cache.fetch с блоком как раз и пробует вытащить из кэша или заполняет его результатом блока.
Rails.cache.fetch("products", :expires_in => 10.minutes) do
JSON.parse RestClient.get('someexternalsvc.org/products.json')
end
Вам никто не мешает вытягивать статистику из гугла и показывать из локального кэша. Тогда у вас будут точные данные и можно добавлять измерения (регионы, языки, устройства и т.п.)
Я не вижу смысла в репликации кэша, это сильно усложняет систему и вносит больше тормозов чем пользы :) Быстрее будет напрямую в монгу всегда ходить. Даже в случае потери кэша, у вас всегда есть оригинальные данные которые можно закэшировать еще раз.
1) SUM там так как фактически мы сворачиваем разреженную таблицу, уберите GROUP_BY тогда будет понятнее, что именно происходит и для чего нужен sum
2) Тогда вам придется сначала получить все уникальные price_id и затем сгенерировать на каждый из них отдельный SUM(IF ....)
Если у вас ID auto_increment. То достаточно записать в фаил случайные данные разделенные новой строкой и сделать LOAD DATA INFILE 'xxx' INTO TABLE 'xxx' (code);
Да это вариант, похоже у меня действительно максимальная скорость которая на такой свзяке получается, нужно другую точку с 5Ghz, правда цена на extreme слегка кусается.
WPA2-AES, n-only, просканировал эфир и выбрал самый незагруженный канал — 13. Попробовал еще с 5 других везде было хуже. 20/40 переключал, на 40 скорость еще меньше.
Есть ли какая-то железка которая даст 100 мегабит?
Покажите какой был конфиг php-fpm в ваших тестах, у меня все совсем было противоположное, работало около 50 вокреров на 8 GB RAM. php-fpm через socket, mysql тоже
Rails.cache.fetch("products", :expires_in => 10.minutes) do
JSON.parse RestClient.get('someexternalsvc.org/products.json')
end