Maison > Questions et réponses > le corps du texte
我想用mongodb加nodejs做一个聊天系统 他有添加好友和给好友分组的功能 不知道这样的mongodb要怎么设计比较好
黄舟2017-04-24 09:14:18
{
_id:,
nick:'',
account:'',
password:'',
friends:[
{grounp:'分组1',list:[用户ID1,用户ID2]},
{grounp:'分组2',list:[用户ID3,用户ID4]}
]
}
Les gens ont clairement posé des questions sur mongo, mais tout le monde ci-dessus a répondu redis. Redis a les mêmes utilisations que redis. Il est très utile pour les données linéaires unidimensionnelles, mais il doit toujours être utilisé pour des données relationnelles comme celle-ci.
PHP中文网2017-04-24 09:14:18
Base de données : mongodb n'est toujours pas assez rapide, après tout, compte tenu de la persistance. Il est recommandé d'ajouter une couche de cache, et utiliser la collection ordonnée de Redis serait un bon choix.
Par programme, il est implémenté via websocket, afin que Web/iOS/Android puisse communiquer. Une fois que le client et le serveur ont établi une connexion, le client envoie le message au serveur et l'enregistre dans Redis, puis l'envoie aux amis cibles en ligne. via le serveur.
Si l'autre partie est hors ligne, mettez-le en cache dans Redis. Dès que l'autre partie se connecte, les messages non lus seront récupérés et envoyés à l'autre partie
天蓬老师2017-04-24 09:14:18
Redis prend les devants et pgsql fait la sauvegarde. mongodb fait ça. . . . . Ce n’est toujours pas tout à fait adapté à cette scène.
ringa_lee2017-04-24 09:14:18
Aucune base de données persistante ne vous satisfera dans cette exigence. Vous avez besoin de redis pour la mise en mémoire tampon, ou même de redis pour la persistance (vous pouvez rechercher en ligne des solutions spécifiques, je me souviens de la technologie de Momo. Les gens l'ont partagée)
Quant à la façon de stocker les données dans mongodb après la mise en mémoire tampon, c'est beaucoup plus simple. Il vous suffit en gros de réfléchir à la manière de stocker les données de manière raisonnable