Mamy aplikację na iOS, która komunikuje się z serwerem Django przez REST API. Większość danych zawiera raczej duże obiekty przedmiotów, które obejmują kilka powiązanych modeli, które renderują się w pojedynczy płaski słownik, a dane te rzadko się zmieniają.Używanie Redis jako pośredniej pamięci podręcznej dla REST API
Wykryliśmy, że zapytanie o to nie jest problemem dla PostgreSQL, ale generowanie odpowiedzi JSON zajmuje zauważalny czas. Z drugiej strony kolekcje przedmiotów różnią się w zależności od użytkownika.
Pomyślałem o systemie renderowania, w którym po prostu budujemy słownik dla obiektu Item i zapisujemy go w redis jako ciąg JSON, w ten sposób możemy obsługiwać API bezpośrednio z redis (np. HMGET (id elementów w bibliotece użytkownika), która jest szybka i sprawia, że względnie łatwo zregenerować "renderowane instancje", w zasadzie zaledwie kilka z sygnałów post_save
.
Zastanawiam się, jak dobry jest ten projekt, czy są w nim jakieś poważne wady? zadanie?
Jak duże są odpowiedzi JSON i jak długo trwa zrzut jsona? –
powiedzmy około 300 dykt z 20 kluczami w nich z zagnieżdżonymi dyktami, zarówno tastypie, jak i django-rest-framework renderują te do 1s na MBPr –
czy próbowałeś już użyć cjson lub ultra json? –