Aujourd'huiTutoriel Redis Voyons comment implémenter le flux de flux
1 Introduction
Moments et Weibo sont tous des produits de flux de flux, ainsi que le site Web de partage d'images Pinterest, Huaban.com, etc. un autre type de produit Feed Stream sous la forme. De nombreuses applications auront également un module appelé News ou Message Plaza, qui sont également des produits de streaming de flux.
Concepts de base
- Flux
Chaque statut ou message dans le flux de flux. Par exemple, un statut dans Moments est un flux, et une publication Weibo dans Weibo est un flux.
- Flux de flux
Un flux d'informations qui met à jour et présente en permanence le contenu aux utilisateurs. Le cercle d'amis de chacun, la page de suivi Weibo, etc. sont tous un flux de flux.
- Timeline
Un type de flux de flux. Weibo et Moments sont tous des flux de flux de type Timeline. Cependant, étant donné que le type Timeline apparaît le plus tôt, il est le plus largement utilisé et le plus connu. est parfois utilisé pour représenter le flux Feed.
- Suivez la chronologie de la page
Une page qui affiche les messages de fil d'autres personnes, tels que Moments et la page d'accueil de Weibo.
- Chronologie de la page personnelle
Une page qui affiche les messages de flux que vous avez envoyés, comme l'album photo dans WeChat et la page personnelle de Weibo.
2 fonctionnalités
- Flux de contenu multi-comptes
Il y aura certainement des milliers de comptes dans le système de flux de flux que vous pourrez suivre. , ne plus suivre, ajouter des amis, bloquer et autres opérations. Tant que cette condition est remplie, il peut être conçu comme un système de flux d'alimentation.
- Relation de compte instable
En raison d'opérations telles que le suivi et le désabonnement, la relation entre les utilisateurs dans le système changera toujours, ce qui est un état instable.
- Rapport de lecture et d'écriture 100:1
Il existe un grave déséquilibre entre la lecture et l'écriture, avec plus de lecture et moins d'écriture. Le rapport général de lecture et d'écriture est de 10:1, voire supérieur à 100:1. .
- L'exigence de livraison du message est élevée
Par exemple, après avoir envoyé un message à un cercle d'amis, certains amis l'ont vu et d'autres non. Si la petite amie ne l'a pas vu, cela peut causer de graves problèmes. conséquences. Les conflits émotionnels ont de graves conséquences.
3 catégories
- Chronologie
Trier par heure de publication, celles publiées en premier sont vues en premier, et celles publiées plus tard sont classées dernier Le sommet est similaire à WeChat Moments, Weibo, etc. C'est aussi la forme la plus courante. Si le produit choisit le type Timeline, cela signifie qu'il n'y a pas beaucoup de flux dans le flux de flux, mais que chaque flux est important et doit être vu par les utilisateurs.
- Classement
Trier selon un facteur non temporel, généralement selon les préférences de l'utilisateur. Le favori de l'utilisateur est classé en premier et le deuxième favori est classé en dernier. Cela suppose généralement que l'utilisateur peut voir beaucoup de flux et que le temps qu'il passe ici est limité, puis les N premiers résultats que l'utilisateur souhaite voir le plus sont sélectionnés pour l'utilisateur. Les scénarios d'application incluent le partage d'images et la recommandation d'actualités. catégories et catégories de produits, etc.
4 Difficultés
4.1 Stockage
Parce que le flux dans ce projet est relativement simple, il est analogue à la théorie de l'espace Par conséquent, le stockage MySQL peut être utilisé si le flux de flux a une structure de données relativement complexe, une base de données NoSQL doit être utilisée, ce qui rend le stockage plus pratique et efficace, comme MongoDB ou HBase.
4.2 Push
Dans le plan push, il y a trois plans, à savoir :
Mode Pull
Également appelée diffusion en lecture, les utilisateurs prennent l'initiative d'extraire le contenu du flux de leurs abonnés.
Autrement dit, lorsqu'un utilisateur (en particulier quelqu'un qui suit beaucoup de personnes) déclenche un comportement, extrait ses propres mises à jour, récupère la liste de suivi de l'utilisateur, puis récupère de nouveaux flux basés sur la liste de suivi. Si un utilisateur suit trop de personnes, interroger sa liste de surveillance entraîne également un coût de données important.
Le mode Push
devient également diffusion en écriture, lorsque l'utilisateur ajoute le flux, le flux sera automatiquement notifié aux personnes qui le suivent (de préférence).
Autrement dit, lorsqu'un utilisateur déclenche un comportement (comme publier sur Weibo), son comportement est enregistré dans la table des comportements, et il correspond également à la table des fans de l'utilisateur, en insérant un flux pour chaque fan. Cependant, pour les gros V avec plus de 10 000 ventilateurs, insérer un flux pour chaque ventilateur coûte très cher pour stocker les données.
Utilisez les ensembles triés Redis (pratique pour trier la chronologie par heure) pour gérer les collections de flux des fans lorsque les blogueurs ajoutent des flux, ils poussent activement le contenu vers les collections de flux des fans afin que les utilisateurs puissent le faire. est très pratique pour lire rapidement la collection
Combinaison push-pull
Par exemple, Weibo, la plupart des utilisateurs ont quelques centaines de relations de compte, mais certains utilisateurs en ont 1 000 Utilisez-le uniquement s'il dépasse 10 000 yuans.
Poussez en ligne, tirez hors ligne
- Lorsque Big V publie des mises à jour, elles ne seront publiées qu'aux fans qui sont en ligne en même temps. Les fans hors ligne recevront les mises à jour après leur mise en ligne. pour terminer la poussée et la traction.
Push régulier, pull hors ligne
Une fois que le grand V a publié la mise à jour, elle sera régulièrement poussée vers la table de mise à jour des fans sous la forme d'un résident processus.
Conception de 5 tables
Recommandé (gratuit) : Tutoriel Redis
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!