2010-07-01 6 views
3

(je peux être totalement hors ici dans ma compréhension, mais je voudrais encore demander.)App Engine - MemcacheService namespaces

Le MemcacheServiceFactory peut retourner une instance de MemcacheService donné un espace de noms.

Une application peut-elle demander des instances MemcacheService pour plusieurs espaces de noms? Si oui, l'espace de noms peut-il être utilisé comme un concept de regroupement? Par exemple, disons que mon modèle a des dossiers et des fichiers et que j'utilise les noms de dossiers comme espaces de noms. Je peux stocker des données mises en cache pour les fichiers appartenant à un certain dossier dans l'instance MemcacheService avec le nom de ce dossier en tant qu'espace de noms. Et quand je supprime le dossier je supprime simplement toutes les entrées dans cette instance de MemcacheService en n'affectant aucun autre dossier ou fichier.

Merci, Keyur

Répondre

6

Oui, vous pouvez obtenir des implémentations de service pour un certain nombre d'espaces de noms dans la même application. Les espaces de noms sont destinés à assurer la séparation entre différentes préoccupations en utilisant le service memcache depuis la même application, afin d'éliminer le besoin de modifier vos clés pour éviter les collisions. L'approche que vous décrivez ne fonctionnera pas car il n'y a aucun moyen d'obtenir une liste de toutes les clés d'un espace de noms, ni d'effacer toutes les clés d'un espace de noms spécifique (uniquement la totalité de memcache).

+1

Merci, Nick. J'avais l'impression que clearAll() effacerait les clés seulement dans un espace de noms spécifique. Mais comme vous le mentionnez et comme le confirme le javadoc, ce n'est pas le cas. – Keyur