wir versuchen, unsere Datenbank von MySQL zu verschieben. Wir versuchen zu verstehen, wie Redis funktioniert und wir würden gerne die beste Lösung für dieses Beispiel kennenlernen.Von relationalen Datenbank zu Redis, N zu N Beziehung
Wie Product-> Kategorien Beziehung zu lösen?
Wir werden brauchen - Liste aller von ID sortiert Produkte
Liste aller nach Namen sortiert Produkte (ASC/DESC)
Liste aller Produkte in der Kategorie 1
Liste aller Produkte in Kategorie 1 sortiert nach Name/ID/(ASC/DESC)
Vom zweiten Teil des Bildes werden wir durch Attribute gefiltert werden müssen
Liste aller Produkte mit Attribut 1 (Attribut Wert 1)
Liste aller Produkte mit Attribut 1 (Attribut Wert 1) in Kategorie 1 sortiert nach Name
Ist es gut, Redis für diese Art von Daten zu verwenden?
Dank
Wir arbeiten weltweit an einer mobilen Anwendung, die mit dem Magento-Shop verbunden wird. Die Magento-REST-API ist zu langsam und ihre Datenbank zu schwer, daher werden wir Middleware für schnellere Antworten auf die Anwendung erstellen. Wir müssen in Middleware Produkte, Kategorien, Attribute von Produkten speichern. Dann müssen wir Antworten für Filteranforderungen erstellen. Unsere Middleware wird wie ein Cache funktionieren. Es sollte so schnell wie möglich sein. – Rastislav
Großartig! Redis ist verrückt schnell, aber MySQL kann auch sein. Vielleicht sind die Magento-Abfragen einfach nicht so gut. Siehe http://blog.ulf-wendel.de/2013/using-phps-memcache-interface-to-query-mysql-5-7/ - und ich stimme zu Redis eignet sich sehr gut für einen Cache. Wenn Sie Caching durchführen, sollten Sie in Betracht ziehen, die denormalisierte Version zwischenzuspeichern - das gesamte Produkt mit allen seinen Kategorien und die komplette Kategorie mit allen Produkten zwischenzuspeichern und sie einfach zu ersetzen, wenn sie aktualisiert wird, anstatt sie neu zu erstellen die NM-Beziehung. – MichielB
Ja, es wäre toll, alle Listen direkt in Redis zu haben, aber es gibt viele Kombinationen, die mit Filtern verbunden sind. Kategorie ist wie ein Attribut, aber Produkt kann Größe, Farbe, Preis haben ... und Sie können mehrere Filter verwenden = viele Kombinationen ... – Rastislav