J'ai un gros Donc, j'ai suivi des options: p>
Utilisation de REDIS / MEMCACHACHE ajoute une surcharge de frapper une prise à chaque fois, de sorte que benned.py strong> sera meilleur car il faudrait le temps de le charger à la mémoire, mais après cela ne ferait que des recherches de mémoire. P> li>
Mon dictionnaire doit être mis à jour tous les jours, envisageant que Dumk.py strong> sera un problème, car nous devons redémarrer le django-serveur pour recharger où, comme je suppose que cela réfléchirait sur La mouche dans Redis et Memcache Strong>. P> Li>
one utilise un système comme ReDIS STRUT> uniquement lorsque vous avez une grande quantité de données et que vous devez rechercher très souvent, dans ce cas, vous donnez une surcharge, comment pouvons-nous atteindre l'avantage ? p> li>
ul>
Veuillez partager vos expériences à ce sujet! P> Valeur de clé Code> Dump, que j'ai besoin de rechercher My Django-Python WebApp. P>
4 Réponses :
Memcached, bien qu'un excellent produit, est trompée par Redis dans mon livre. Il offre beaucoup de choses qui memcaches ne le font pas, comme la persistance. p>
Il offre également des structures de données plus complexes telles que HashSes. Quelle est votre dépotoir de données? Quelle est la taille et quelle taille / quel type de valeurs? P>
Dans le passé pour un problème similaire, j'ai utilisé l'idée d'une benne basculante. Je penserais que toutes les autres structures de données nécessiteraient une couche convertissant des objets d'un type en objets Python. Cependant, je penserais toujours que cela dépendrait de la taille de données et de la quantité de données que vous manipulez. MemCache et Redis devraient avoir une meilleure indexation et rechercher des ensembles de données vraiment volumineux et des choses comme la recherche basée sur REGEX. Donc, ma recommandation serait p>
JSON - si vous servez les données sur http à un autre service Fichier Python - Si la structure de données n'est pas trop grande et que vous n'avez pas besoin d'un type de recherche spécial p>
memcache et redis - si les données deviennent vraiment grandes p>
5 Mo n'est pas si grand. Vous pouvez le conserver en mémoire en cours et je vous recommande de le faire, jusqu'à ce qu'il soit clair du profilage et de tester que cette approche ne répondait pas à vos besoins. Toujours faire la chose la plus simple possible. P>
La communication de la prise ne présente pas d'elle-même une grande partie de la tête. Vous pouvez probablement le remettre un peu en utilisant une prise de domaine UNIX. Dans tous les cas, si vous ne conservez pas vos données en cours, vous devrez parler de la sorte de tuyau. P>
D'accord
@Yugaljindle Non, je pense que vous devez conserver vos données en cours jusqu'à ce que le profilage réel montre qu'il provoque un problème.
Pour choisir MemCache ou Redis, ils sont capables de dizaines de milliers de demandes par seconde sur du matériel bas de gamme (par exemple,
Si vous choisissez l'option bennedump.py: p> code DJAGO: p> benned.py code>, vous n'avez pas besoin de redémarrer Django pour recharger. Vous pouvez faire votre propre reloacher simple: p>
Redis partie est vraiment informatif +1 pour cela. Recharger () est connu pour moi, mais je l'ai rechargé après chaque MTime code>, qui prend 2 secondes pour charger et raccrocher la requête de la page. Donc, je ne peux pas prendre les frais généraux de 2 secondes à mi de neuf - je préférerais redémarrer le serveur une fois que j'ai mis à jour ma DICT. De toute façon recharger n'est pas la question ici. Redis partie est!
Qu'est-ce que vous voulez dire "pour chaque mitime"? Vous avez dit que le dictionnaire est modifié quotidiennement, vous devrez le recharger une fois par jour.
Ya .. ici mitime est 1 jour. C'est bien, j'ai dit que cela pourrait être mis à jour dans une journée et demie. Mais, n'aimait pas vraiment. Redis Info était important
Dépend. Où est ton goulot d'étranglement?
À quelle fréquence allez-vous vérifier la clé si vous êtes inquiet pour les sockets?
Peut être 1000 fois par minute ou encore plus!
Vous n'avez pas à redémarrer Django pour recharger Dumk.py, vous pouvez utiliser la fonction de rechargement
intégrée () code>.