memcached - 使用mongodb搭配memcache
PHPz
PHPz 2017-04-24 15:59:35
0
3
843

网站预计会有很大的查询量,相比之下写入数据库的操作要少很多。
我想的是把数据库内容分成两种,一种是用于索引的内容,内容包含各种所需信息对应的索引项,另一种是其他所要查询的具体数据内容。
先将具体内容存入memcache,查询时通过从数据库中得到的索引值再从memcache中取得对应数据;
写入数据时则直接写到mongodb中;
不知道这种做法有什么不妥,来这寻求下建议~~

PHPz
PHPz

学习是最好的投资!

répondre à tous(3)
Peter_Zhu

Il s'agit d'un scénario typique d'utilisation de la mise en cache. En fonction de la solution technique que vous utilisez, plusieurs points doivent être pris en compte :

  1. Puisque vous choisissez mongodb, votre scénario de requête doit essayer d'utiliser une clé pour obtenir les données de l'ensemble du document. Ce type de requête est ce pour quoi mongodb est le meilleur et ne nécessite théoriquement aucune optimisation supplémentaire.
  2. Si vous avez plusieurs requêtes pour obtenir les résultats souhaités, à l'exception de la situation ci-dessus, vous pouvez envisager d'utiliser le cache. Maintenant, je pense que l'utilisation de Redis est plus flexible que Memcached. Étapes plus spécifiques :
    (1) Pour chaque requête, allez d'abord dans le cache pour voir s'il y a déjà une valeur
    (2) Sinon, utilisez vos conditions de requête comme clé selon certaines règles, les résultats de la requête comme valeur, stockez-les dans le cache et renvoyez les résultats de cette requête.
    (3) Retourner directement s'il y en a un (le contrôle des pannes de cache doit être effectué en fonction des besoins métier, comme la période de validité ou les nouvelles écritures)
我想大声告诉你

"Stockez d'abord le contenu spécifique dans memcache, puis obtenez les données correspondantes de memcache via la valeur d'index obtenue à partir de la base de données lors de la requête ;" Je ne comprends pas bien cette phrase. Les données doivent-elles être enregistrées dans le cache ? S'il est en panne, les données ont disparu.

小葫芦

Je ne sais pas quelle est l'activité de l'affiche. Mongodb est une base de données hybride. Même Mongodb a également une partie de base de données en mémoire. Mongodb n'est pas un mauvais goulot d'étranglement en écriture, donc l'activité de lecture doit être placée dans un environnement pur. base de données en mémoire comme redis. Ne serait-il pas préférable de sauvegarder l'entreprise directement dans mongo sans avoir à s'en soucier ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal