Je pré-génère plus de 20 millions de pages html gzippées, je les stocke sur disque et je les sers avec un serveur web. Maintenant, j'ai besoin que ces données soient accessibles par plusieurs serveurs Web. Rsync-ing les fichiers prend trop de temps. NFS semble être trop long. J'ai envisagé d'utiliser un magasin de clés/valeurs comme Redis, mais Redis ne stocke les chaînes que comme des valeurs, et je soupçonne qu'il va s'étouffer avec les fichiers gzippés. Mon idée actuelle est d'utiliser une simple table MySQL/Postgres avec une clé de chaîne et une valeur binaire. Avant de mettre en œuvre cette solution, je voulais voir si quelqu'un d'autre avait de l'expérience dans ce domaine et pouvait offrir des conseils.Quelle est la meilleure façon de mettre en cache des données binaires?
Répondre
J'ai la tête bien sur Redis, c'est un.
J'ai aussi entendu des choses extrêmement positives sur memcached. Il convient également aux données binaires.
Prenez Facebook par exemple: Ces gars utilisent memcached, aussi pour les images!
Comme vous le savez, les images sont en binaire. Alors, obtenez memcached, obtenir une machine pour l'utiliser, un classeur pour PHP ou tout ce que vous utilisez pour vos sites, et c'est parti! Bonne chance!
Tout d'abord, pourquoi mettre en cache les gzips? La latence du réseau et le temps de transmission sont supérieurs de plusieurs ordres de grandeur au temps passé par le processeur à compresser le fichier, ce qui le rend peut-être la solution la plus simple.
Cependant, si vous en avez vraiment besoin, je ne suis pas sûr qu'une base de données centrale soit plus rapide qu'un partage de fichiers (bien sûr, vous ne devriez pas deviner ces choses!). Une approche simple pourrait consister à héberger les fichiers d'origine sur un partage NFS et à laisser chaque serveur web les gzip et les mettre en cache localement à la demande. memcached (comme le suggère Poni) est également une bonne alternative, mais ajoute une couche de complexité.
Je suis en train de comparer les systèmes de fichiers, postgres et tokyo cabinet. Je vais mettre à jour ma question avec les résultats. – Scott
- 1. Quelle est la meilleure façon de mettre en cache des fichiers en php?
- 2. Meilleure façon de mettre en cache les données
- 3. Quelle est la meilleure façon de mettre en cache les flux XML localement?
- 4. Meilleure façon de mettre en cache des fichiers XML
- 5. System.Xml.XmlDocument, quelle est la meilleure façon de mettre en cache une DTD de dépendance externe?
- 6. Tumblr Intégration: Quelle est la meilleure pratique pour la mise en cache des données de l'API?
- 7. Quelle est la meilleure façon de mettre en cache des informations d'utilisateur dans mon basecontroller dans asp.net mvc
- 8. Quelle est la meilleure façon de mettre en cache un contrôle utilisateur ou ses données associées dans asp.net mvc
- 9. Quelle est la meilleure façon de mettre en œuvre des changements de suivi sur vos entités?
- 10. Quelle est la meilleure façon de mettre à jour la base de données locale à twitter
- 11. Quelle est la meilleure façon de lire les données CSV?
- 12. Migration de données: Quelle est la meilleure façon de migrer?
- 13. Quelle est la meilleure pratique pour mettre en cache les images sur Android?
- 14. Quelle est la meilleure façon de récupérer ces données?
- 15. Quelle est la meilleure façon de mettre une application pilotée par base de données sur Codeplex?
- 16. Quelle est la meilleure façon de mettre à jour les données sous-jacentes d'un adaptateur?
- 17. Quelqu'un peut dire quelle est la meilleure façon de stocker des images en SQL
- 18. Quelle est la meilleure façon de mettre les données resultset dans un fichier texte?
- 19. Quelle est la meilleure façon de stocker des données binaires (images, pdf, mp3, vidéos ect) dans mysql et pourquoi?
- 20. Quelle est la meilleure façon de mettre en cache un système de menu localement, dans le navigateur?
- 21. Quelle est la norme/la meilleure façon de mettre en œuvre l'itinéraire sur iPhone?
- 22. Quelle est la meilleure façon de transmettre des ressources?
- 23. Quelle est la meilleure façon d'implémenter hashCode()?
- 24. Quelle est la meilleure façon de charger la balance? PHP
- 25. Quelle est la meilleure façon de mettre à l'échelle un octet de façon uniforme?
- 26. Quelle est la meilleure façon de créer des déploiements ClickOnce
- 27. Quelle est la meilleure façon de filer des tweets?
- 28. Quelle est la meilleure façon de mettre en œuvre un vecteur clairsemé en Java?
- 29. Quelle est la meilleure façon de lire/écrire le contenu d'un tableau depuis/vers des fichiers binaires en C#?
- 30. Quelle est la meilleure façon de distribuer les binaires .Net et les PDB? Nous
Mon problème avec memcached est que si l'alimentation s'éteint, je perds mes données. Donc, en plus de récupérer d'une panne de courant, je dois reconstruire mon cache. – Scott
Cela dépend de ce que vous cherchez, exactement, et quel est le budget. Pensez à avoir des «miroirs» ou des données, même si une machine tombe en panne, l'autre ou les autres peuvent servir. De plus, si le serveur tombe en panne, et qu'il est le seul, vous pouvez écrire un script pour télécharger à nouveau les données à partir du hdisk ou de quelque chose au démarrage. Il y a beaucoup d'options. Je n'irais pas pour une base de données ACID car il y a beaucoup de frais généraux qui ne sont pas nécessaires à cette fin. Il ne cache pas, autant que je sache, les données d'une manière que memcached fait, qui sur ce dernier est conçu spécifiquement pour votre but, donc optimisé pour cela – Poni
Je suis d'accord sur la base de données, mais on m'a donné le luxe d'explorer quelques options, alors j'ai pensé à ce que le diable. – Scott