HeuteRedis-TutorialSpalte werfen wir einen Blick darauf, wie man den Feed-Flow implementiert
1 Einführung
Moments, Weibo, sind alle Feed-Flow-Produkte sowie Bilder Sharing-Websites Pinterest, Huaban.com usw. sind eine weitere Form von Feed-Flow-Produkten. Viele Apps verfügen auch über ein Modul namens News oder Message Plaza, bei denen es sich ebenfalls um Feed-Streaming-Produkte handelt.
Kernkonzept
- Feed
Jeder Status oder jede Nachricht im Feed-Stream. Beispielsweise ist ein Status in Moments ein Feed und ein Weibo-Beitrag in Weibo ein Feed.
- Feed Stream
Ein Informationsstream, der Inhalte kontinuierlich aktualisiert und den Benutzern präsentiert. Jeder Freundeskreis, die Weibo-Follow-Seite usw. sind alle ein Feed-Stream.
- Timeline
Eine Art Feed-Stream, Weibo und Moments sind allesamt Feed-Streams vom Typ Timeline. Da der Timeline-Typ jedoch am frühesten erscheint, am häufigsten verwendet wird und am bekanntesten ist, wird Timeline manchmal zur Darstellung verwendet Feed-Stream.
- Zeitleiste der Folgeseite
Eine Seite, auf der die Feed-Nachrichten anderer Personen angezeigt werden, z. B. Moments und die Weibo-Startseite.
- Zeitleiste der persönlichen Seite
Eine Seite, auf der die von Ihnen gesendeten Feed-Nachrichten angezeigt werden, z. B. das Fotoalbum in WeChat und die persönliche Seite auf Weibo.
2 Funktionen
- Multi-Account-Content-Flow
Es wird definitiv Tausende von Accounts im Feed-Flow-System geben. Konten können verfolgt, nicht mehr verfolgt, als Freunde hinzugefügt und blockiert werden. Solange diese Bedingung erfüllt ist, kann es als Zulaufsystem ausgelegt werden.
- Instabile Kontobeziehung
Aufgrund von Vorgängen wie „Folgen“ und „Entfolgen“ ändert sich die Beziehung zwischen Benutzern im System ständig, was einen instabilen Zustand darstellt.
- Lese- und Schreibverhältnis 100:1
Es besteht ein gravierendes Ungleichgewicht beim Lesen und Schreiben, mit mehr Lesen und weniger Schreiben. Das allgemeine Lese- und Schreibverhältnis beträgt 10:1 oder sogar mehr als 100:1.
- Die Anforderungen an die Nachrichtenübermittlung sind hoch
Nachdem Sie beispielsweise eine Nachricht an einen Freundeskreis gesendet haben, haben einige Freunde sie gesehen und andere nicht. Wenn die Freundin sie nicht gesehen hat, kann es zu schwerwiegenden emotionalen Konflikten und schwerwiegenden Konsequenzen kommen . .
3 Kategorien
- Zeitleiste
Sortieren Sie nach dem Zeitpunkt der Veröffentlichung. Die zuerst geposteten werden zuerst angezeigt, und die später geposteten werden oben angeordnet, ähnlich wie bei WeChat Moments, Weibo usw. Dies ist auch die häufigste Form. Wenn das Produkt den Timeline-Typ wählt, bedeutet dies, dass der Feed-Stream nicht viele Feeds enthält, aber jeder Feed wichtig ist und von Benutzern gesehen werden muss.
- Rangfolge
Sortieren Sie nach einem nicht zeitlichen Faktor, normalerweise nach den Vorlieben des Benutzers. Der Favorit des Benutzers wird an erster Stelle und der zweite Favorit an letzter Stelle angezeigt. Dies setzt im Allgemeinen voraus, dass der Benutzer möglicherweise viele Feeds sieht und die Zeit, die der Benutzer hier verbringt, begrenzt ist. Anschließend werden die Top-N-Ergebnisse für den Benutzer ausgewählt. Zu den Anwendungsszenarien gehören das Teilen von Bildern und Nachrichtenempfehlungen Kategorien und Produktkategorien usw.
4 Schwierigkeiten
4.1 Speicher
Da der Feed in diesem Projekt relativ einfach ist, kann MySQL-Speicher verwendet werden, wenn der Feed-Stream eine komplexe Datenstruktur hat, muss eine NoSQL-Datenbank verwendet werden verwendet werden, was die Speicherung komfortabler und effizienter macht, wie zum Beispiel MongoDB oder HBase.
4.2 Push
Im Push-Plan gibt es drei Pläne, nämlich:
Pull-Modus
Auch als Lesediffusion bekannt, ziehen Benutzer aktiv den Feed-Inhalt ihrer Follower.
Das heißt, wenn ein Benutzer (insbesondere jemand, der vielen Leuten folgt) ein Verhalten auslöst, ziehen Sie seine eigenen Updates, rufen Sie die Follow-Liste des Benutzers ab und rufen Sie dann neue Feeds basierend auf der Follow-Liste ab. Wenn ein Benutzer zu vielen Personen folgt, ist die Abfrage der Beobachtungsliste des Benutzers ebenfalls mit hohen Datenkosten verbunden.
Push-Modus
wird auch zur Schreibdiffusion. Wenn ein Benutzer einen Feed hinzufügt, wird der Feed automatisch an die Personen benachrichtigt, denen er folgt (bevorzugt).
Das heißt, wenn ein Benutzer ein Verhalten auslöst (z. B. das Posten auf Weibo), wird sein Verhalten in der Verhaltenstabelle aufgezeichnet und sie entspricht auch der Fans-Tabelle des Benutzers, wobei für jeden Fan ein Feed eingefügt wird. Bei großen Vs mit über 10.000 Fans ist das Einfügen eines Feeds für jeden Fan jedoch sehr aufwändig, um Daten zu speichern.
Verwenden Sie Redis Sorted Sets (praktisch, um die Zeitleiste nach Zeit zu sortieren), um die Feed-Sammlung der Fans zu verwalten. Wenn der Blogger einen Feed hinzufügt, wird der Inhalt aktiv an die Feed-Sammlung der Fans weitergeleitet, sodass Benutzer ihn einfach und schnell verwalten können Lesen Sie schnell aus der Sammlung.
Push- und Pull-Kombination
Bei Weibo haben die meisten Benutzer Hunderte von Kontobeziehungen, aber einige Benutzer verwenden es nur, wenn sie mehr als 10 Millionen haben.
Online pushen, offline ziehen
- Wenn Big V Updates veröffentlicht, werden diese nur an Fans gesendet, die gleichzeitig online sind. Offline-Fans ziehen die Updates, nachdem sie online sind. um das Drücken und Ziehen abzuschließen.
Regelmäßiger Push, Offline-Pull
Nachdem das große V das Update veröffentlicht hat, wird es regelmäßig in Form eines residenten Prozesses an die Fan-Update-Tabelle gesendet.
5 Tischdesign
Empfohlen (kostenlos): Redis-Tutorial
Das obige ist der detaillierte Inhalt vonWie Redis den Feedflow implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!