Nie musisz niczego hakować;)
Nie jestem do końca pewien, dlaczego potrzebujesz danych na mysql. Gdybym wiedział, może byłaby bardziej odpowiednia odpowiedź. W każdym razie, jako ogólną odpowiedź, możesz użyć powiadomień redis keyspace
Możesz subskrybować polecenia HSET, HMSET, HDEL i DEL na swoich kluczach, aby otrzymywać powiadomienia za każdym razem, gdy klucz zostanie usunięty lub ustawiona lub usunięta wartość skrótu.
Uwaga, jeśli przegapisz jakiekolwiek powiadomienie, będziesz mieć niespójność. Więc od czasu do czasu możesz po prostu użyć polecenia SKANUJ, aby przejść przez wszystkie klucze i sprawdzić w mysql, czy wymagają aktualizacji.
Inną strategią mogłoby być utrzymanie dwóch odrębnych struktur. Jednym z nich byłby skrót z wartościami, a drugi byłby zbiorem ZSET wszystkich wartości posortowanych według sygnatury czasowej aktualizacji. Najlepszym sposobem, aby obie struktury były aktualne, byłoby napisanie dwóch lub trzech skryptów Lua (wstawianie/aktualizacja i usuwanie), które działałyby na haszu i zbiorze zset niepodzielnie.
Następnie możesz po prostu okresowo wysyłać zapytania do ZSET o elementy ze znacznikiem czasu wyższym niż ostatnia operacja synchronizacji, pobierać wszystkie zaktualizowane klucze (obejmuje to usunięte klucze, chyba że chcesz zachować drugi ZSET wyłącznie dla nich), a następnie po prostu pobierz wszystkie elementy według klucza i zsynchronizuj z mysql.
Mam nadzieję, że to zadziała!