Ich habe ein Szenario, und ich würde gerne wissen, ob ich Azure Redis Cache richtig verwende, weil ich definitiv keine Leistung so jemals sehe.Azure Redis Cache - Verbesserung der Anwendungsleistung
Die Web-App ermöglicht dem Kunden, Datensätze zu erstellen, zu lesen und zu aktualisieren, und davon auszugehen, dass es sich um Kundendatensätze handelt. Es gibt eine SQL-Datenbank hinter Azure und fast 60.000 Kundendatensätze. Für unser Beispiel nehmen wir an, dass es eine Tabelle mit Kundendetails, Name, E-Mail, Adresse und so weiter gibt.
Wie werden Sie diese Webanwendung erstellen, um die Leistung zu verbessern, weil es viel schneller ist, die Datenbank direkt abzufragen, als alle Datensätze in den Cache zu stellen. Was ich tat, zur Zeit-Cache:
- Für jeden Lese- einschließlich Filter (Suchen, Sortieren usw.) ich die Daten aus dem Redis Cache erhalten, deserialisieren es als
List<T>
und Abfrage, fiter, Suche, etc. und kehrt die Ergebnisse. - Für Update, ich aktualisiere den Datensatz in der SQL-DB, hole alle Datensätze von db als
List<T>
und speichern Sie es im Cache. - Zum Erstellen und Löschen derselben wie für das Update oben.
ich Null Performance-Vorteile für den Cache verwendet wird. Benutze ich es falsch?
Ich denke, das ist eine schlechte Idee der Serialisierung von vielen Daten und speichern Sie es im Cache. Irgendwelche Ideen, wie man es besser macht?
Danke für die Klarstellung. Ich denke, mein Problem ist, dass ich nicht jeden Datensatz einzeln hinzufügen und es durch ID, sondern eine "Liste", die 60000 Elemente enthält. Die I serialisiert diese Liste als JSON und speichert dieses ganze JSON im Cache unter einem Schlüssel wie 'AllRecords' und der Wert für diesen Schlüssel ist der JSON mit 60000 Datensätzen. Ich denke, das ist ein schlechter Ansatz. Natürlich könnte ich die ganzen Datensätze einzeln speichern und der Schlüssel in Redis Cache könnte der selbe wie der Schlüssel in der SQL db sein, aber es gibt keine Funktionalität in Redis Cache wie'Abfragen alle Elemente' ... –
user2818430
Es sei denn, ich speichere alle Schlüssel unter einem Schlüssel in Azure und dann basierend auf diesen Schlüsseln konnte ich alle Datensätze aus dem Cache abrufen, aber ich denke immer noch, dass dies ein schlechter Ansatz ist – user2818430