Ответ 1
Вам не нужно ничего взломать;)
Я не совсем уверен, зачем нужны данные о mysql. Если бы я знал, возможно, был бы более подходящий ответ. В любом случае, в качестве общего ответа вы можете использовать redis keyspace notifications
Вы можете подписаться на команды HSET, HMSET, HDEL и DEL на ваших клавишах, чтобы вы получали уведомление каждый раз, когда ключ был удален или значение хеша установлено или удалено.
Обратите внимание, что если вы пропустите какое-либо уведомление, у вас будет несогласованность. Поэтому время от времени вы можете просто использовать команду SCAN, чтобы пройти все ваши ключи и проверить mysql, если они нуждаются в обновлении.
Другой стратегией может быть поддержка двух отдельных структур. Один из них будет хешем со значениями, а другой будет ZSET всех значений, отсортированных по метке времени обновления. Лучший способ обновить обе структуры - это написать два или три сценария lua (вставить/обновить и удалить), которые будут работать на хэше и zset атомарно.
Затем вы можете просто запросить ZSET для элементов с отметкой времени выше, чем ваша последняя операция синхронизации, получить все ключи, которые были обновлены (они будут включать удаленные ключи, если вы не хотите, чтобы второй ZSET был исключительно для них) а затем просто извлекать все элементы с помощью ключа и синхронизировать с mysql.
Надеюсь, что это сработает для вас!