Système de cache ...

Eléphant du PHP | 299 Messages

29 janv. 2006, 09:50

Bonjour,

Je propose sur mon site plusieur flux rss :

http://www.actu-lan.com/actu_rss.html

Le problème est qu'ils sont populaires, surtout un, il étulise plus de 50% de ma bande pas passante journalière et ceci augmente régulièrement...

Mon projet pour réduire cette consomation était:

1) creer un lecteur rss sur un serveur free
2) stoker les données lues sur la bdd free
3) reprendre le script original de cration de flux pour reformer la page de flux mais chez free
4) Donnez a mes partenaires une adresse (www.rss.actu-lan.com) qui masquerait partiellement la provenance du flux et qui redirigerait vers ce flux.

Le problème : Mon flux est dynamique , en voici les options :
Options pour ce flux rss :

* "jeu" choisissez la liste des jeux que vous souhaitez (ex: lans.php?dep=3,5 pour CS et BF2)
* "dep" choisissez la liste des départements que vous souhaitez (ex: lans.php?dep=11,59,47)
* "mois & annee" choisissez le mois pour le quel vous désirez la liste de lans (ex: lans.php?mois=1&annee=2006)
(ne pas mettre de '0' devant les mois à un seul chiffre).

Un combiné des trois donnera : lans.php?dep=11,59,47&jeu=3,5&mois=1&annee=2006
A cause de celles ci il me semble difficile de mettre en place mon projet...
Pourais-je avoir quelques conseils pour diminuer ma consomation de BP ?
(A ce rythme je risque de devoir partir de chez 1&1 gratuit a cause des 20Go/mois de BP ...)

Merci de votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 janv. 2006, 14:16

Il existe plusieurs système de cache OpenSource. Ceux que je connais le plus sont :
PEAR:cache
PEAR:cache_Lite

Et voilà un article sur les différentes méthodes de caches

En ce qui concerne tes flux dynamiques, si une page correspond à une recherche, tu peut déjà réduire le trafic en placant en cache les recherche les plus fréquente ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 299 Messages

31 janv. 2006, 21:08

tit up ? :oops:

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

24 mars 2006, 22:39

La RFC 3229 décrit une méthode pour la mise à jour incrémentale des flux RSS. D'après les discussions que j'ai pu lire, la RFC (dont les origines datent de plus de cinq ans si mes souvenirs sont bons) est assez controversée en interne pour des raisons que deux personnes aux mondes comprennent et dont zéro personnes au monde ne se soucient. L'annonce de Microsoft du support de la RFC 3229 dans IE 7 fera peut-être avancer les choses ?

En tout cas, j'attends impatiemment de pouvoir renvoyer des réponses 226 mais je commence à perdre espoir de pouvoir utiliser ça pour des pages web :(

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

25 mars 2006, 00:36

Je procéderais ainsi à ta place :

- sur un hébergement tiers (free par exemple), je place le flux RSS :
-- Si (en cache) renvoyer la valeur en cache.
-- Sinon demander le flux au site "maître".

- sur le site maître je place un script qui génère non pas directement un flux RSS mais les données suffisantes pour que le site client puisse le générer.

Tu gagnes sur les deux tableaux :
- quand un même flux RSS est demandé plusieurs fois tu n'as aucune nouvelle requête sur ton site maître.
- quand un flux RSS est demandé pour la première fois (ou que le cache doit être mis à jour), tu envoies une version compressée (par exemple en réduisant les noms des tags à 1 lettre avant de gzipper le tout) et économises ainsi de la bande passante.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

02 avr. 2006, 14:23

Au fait, si pirquessa lit toujours ce thread (démarré quelques mois plus tôt ;)) j'ai remarqué que tu n'avais pas activé la compression gzip de tes pages, ça te ferait économiser 80% du traffic des flux:
ob_start('ob_gzhandler');
Tu peux également essayer ça pour utiliser le plus haut niveau de compression: (
ob_start(create_function('$contents', 'return ob_gzhandler($contents, 9);'));
C'est moins efficace que zlib.output-compression mais en mutualisé c'est le mieux que tu puisses avoir.

pirquesssa
Invité n'ayant pas de compte PHPfrance

19 avr. 2006, 09:41

Vive les stats de mon site :) grace à elles j'ai pu trouver vos messages!!

naholyr -> je tenterais comme ca, ca m'avait l'air pas mal mais je n'avais pas ue le courage de le tester :)

Hubert Roksor-> On peut zipper toutes ces pages ??? Je vois pas trop comment tu fais pour les visiter ... ect... je veux bien plus d'infos ...

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

19 avr. 2006, 12:03

Tu peux gzip'er le contenu de n'importe quelle requête HTTP (de façon transparente). Tu pourrais gzip'er un .gif par exemple, mais ça ne servirait à rien, alors personne ne le fait.

Pour ton flux, s'il est généré par PHP ajoute simplement
ob_start('ob_gzhandler');
au début du script. S'il s'agit d'un fichier statique tu pourrais utiliser mod_gzip ou mod_deflate d'Apache (voir le manuel). Ou encore, tu pourrais prézipper le fichier et utiliser mod_negotiation pour envoyer soit la version compressée soit la version normale si l'utilisateur accepte gzip ou pas. Mais le plus simple est vraiment d'utiliser PHP avec ob_start()

pirquesssa
Invité n'ayant pas de compte PHPfrance

19 avr. 2006, 13:57

Pour pouvoir lire les pages apres, le gars est obligé de dézippé ou ca marche quand meme ???

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

19 avr. 2006, 17:41

C'est totalement transparent, comme la page que tu es en train de lire. Le contenu est zippé, envoyé, puis dézippé par le navigateur. Et au cas où tu te demandes ce qu'il se passe si le navigateur (ou lecteur RSS) ne supporte pas la compression gzip c'est facile: rien, tout marche comme si de rien n'était. C'est parce que la compression n'est activée que si le client envoie une en-tête "Accept-encoding: gzip".

pirquesssa
Invité n'ayant pas de compte PHPfrance

19 avr. 2006, 20:41

Hum :) pratique ca :) j'vais y penser, merci :)

Eléphant du PHP | 299 Messages

29 mai 2006, 07:49