Question

J'utilise memcache pour concevoir un cache pour la couche modèle d'une application Web. L'un de mes plus gros problèmes est la cohérence des données. Il m'est venu à l'esprit de mettre en cache des données comme ceci: (clé = requête, valeur = liste des identifiants d'objet résultant de la requête) pour chaque identifiant de la liste: (key = object.id, value = object)

Ainsi, chaque fois qu'une requête est effectuée: Si la requête existe déjà, je récupère les objets signalés dans la liste à partir du cache. Si ce n'est pas le cas, tous les objets des listes sont stockés dans la mémoire cache, remplaçant ainsi toute autre ancienne valeur.

Est-ce que quelqu'un a utilisé cette alternative, est-ce Dieu? d'autres idées?

Était-ce utile?

La solution

La mise en cache est l’un de ces sujets pour lesquels il n’existe pas de bonne réponse - cela dépend de votre domaine.

La stratégie de mise en cache que vous décrivez peut suffire à votre domaine. Cependant, vous ne semblez pas vous inquiéter des données obsolètes. Souvent, je m'attendrais à voir un horodatage par rapport à certaines entités. Si la valeur mise en cache est antérieure à un paramètre défini par le système, elle est considérée comme obsolète et extraite à nouveau.

Pour plus d'informations sur les algorithmes de mise en cache, voir Wikipedia (pour commencer)

Autres conseils

Bienvenue dans le monde de la programmation simultanée. Vous voudrez en savoir un peu plus sur la exclusion mutuelle . Si vous nous indiquez le langage / la plate-forme que vous développez, nous pourrons décrire plus précisément vos options.

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