Abbiamo un'app iOS che comunica con un server django tramite l'API REST. La maggior parte dei dati consiste in oggetti Item piuttosto grandi che coinvolgono alcuni modelli correlati che vengono renderizzati in un unico dizionario piatto e questi dati cambiano raramente.Utilizzo di Redis come cache intermedia per l'API REST
Abbiamo trovato che l'interrogazione di questo non è un problema per Postgres, ma la generazione di risposte JSON richiede una notevole quantità di tempo. D'altra parte, le raccolte di articoli variano per utente.
Ho pensato a un sistema di rendering, dove abbiamo creato un dizionario per oggetto Item e lo abbiamo salvato in redis come stringa JSON, in questo modo possiamo servire l'API direttamente da redis (ad es. HMGET (id degli elementi nella libreria utente), che è veloce, e rende relativamente facile rigenerare "istanze renderizzate", in pratica solo un paio di segnali post_save
.
Mi chiedo quanto è buono questo disegno, ci sono grossi difetti in esso? Forse c'è un modo migliore per l'attività?
Quanto sono grandi le risposte JSON e quanto tempo ci vuole per scaricare JSON? –
dire circa 300 dicts con 20 chiavi in loro con alcune diciture annidate, sia tasteypie che django-rest-framework rendono quelli fino a 1 secondo su MBPr –
hai provato a utilizzare cjson o ultra json già? –