Question

Je voudrais savoir s'il y a des systèmes de cache distribué comme memcached, la vitesse ou SharedCache qui me permet de marquer le contenu avec plus que son nom, ou qui peut se rapporter articles à eachother, donc si j'invalident le cache un élément aussi il annule les éléments liés aussi.

par exemple. si j'ai deux pages qui font référence aux mêmes données et que les changements de données, je voudrais le cache pour les deux pages faisant référence à invalident.

  • ou est-ce un ajout à l'un de ces projets qui mendient à développer? :)

edit: je suis sur asp.net

Était-ce utile?

La solution

Velocity a un support pour le marquage où chaque balise est une chaîne. Les objets peuvent être récupérés par une étiquette ou par plusieurs balises par exemple « Condiments » ET 'Livraison Gratuite.

Cependant Velocity n'a pas de support pour les dépendances - IIRC l'équipe de vitesse ont dit les dépendances ne seront pas en v1.

Autres conseils

Je crois que la suppression des données dépendantes peut être fait en utilisant le fonctionnement de memcached CAS (check-et-set). Chaque valeur a un identifiant unique (série). Pour chaque clé, mémoriser une autre key.dependents, qui a la série des données, et les clés de toutes les personnes à charge.

Lorsque vous allez ajouter une personne à charge, faire

dependents, dep_serial = fetch(key+".dependents")
data, serial = fetch(key)
if serial != dependents[0]:
    # somebody changed the actual data
    start_over
generate_and_cache_dependent(dep_key, data)
dependents.append(dep_key)
if not cas(dependents, dep_serial):
   # somebody changed dependents
   start_over # can avoid regenerating the data if they are still at serial

Quand un élément invalidant, faire

dependents, dep_serial = fetch(key + ".dependents")
serial = update(key, new_data)
for dkey in dependents[1:]:
    delete(dkey)
dependents = [serial]
if not cas(dependents, dep_serial):
    start_over

Même en présence d'écritures contradictoires, ces algorithmes finiront par mettre fin à, car un auteur sera toujours « passer à travers ».

la mise en œuvre de dépendance est assez difficile, mais peut-être toutes les autres fonctionnalités de cache partagé ( http://www.sharedcache.com || http://sharedcache.codeplex.com ) répondra à vos besoins pour la mise en cache.

Cordialement, Roni

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top