Je commence à passer à memcached et je suis en train de tester avec memcached.Y at-il de toute façon pour sériliser l'objet linq pour Memcached?
Je vais avoir 2 objet, je créé un objet et mis [Serializable] sur elle (par exemple, laisser appeler ce Object1
), l'autre objet est créé en utilisant Linq DBML (Object2
) ..
I essayé de memcached List<Object1>
, cela fonctionne très bien, comme le charme, tout ici est le cache et chargé correctement.
Mais ensuite, je passe à l'objet Linq, maintenant j'essaie d'ajouter à memcached List<Object2>
cela ne fonctionne pas, il n'a pas ajouté à memcached du tout. aucune clé n'a été ajoutée
Je passe à autre chose et change le mode de sérialisation en unidirectionnel, refait l'ajout, toujours pas d'espoir.
Y a-t-il un moyen de le faire fonctionner?
Voici le test simple que je viens d'écrire, en utilisant MemcachedProvider de CodePlex pour démontrer:
public ActionResult Test()
{
var returnObj = DistCache.Get<List<Post>>("testKey");
if (returnObj == null)
{
DataContext _db = new DataContext();
returnObj = _db.Posts.ToList();
DistCache.Add("testKey", returnObj, new TimeSpan(29, 0, 0, 0));
_db.Dispose();
}
return Content(returnObj.First().TITLE);
}
c'est de Memcached, aucun magasin a été appelé:
> NOT FOUND _x_testKey
>532 END
<528 get _x_testKey
> NOT FOUND _x_testKey
>528 END
<516 get _x_testKey
> NOT FOUND _x_testKey
>516 END
Et dans mon profileur SQL, il a appelé 3 requête pour 3 temps de test => prouvé que l'objet rappelé de Memcached est nul, alors il requête.
Cette question pourrait bénéficier de (1) Quelques exemples de code (2) explication plus claire de ce qui se passe mal exactement et (3) Comment exactement vous utilisez memcached de .NET. Il existe plusieurs wrappers .NET et ils peuvent ne pas tous se comporter de la même manière à cet égard. –
J'ai ajouté tout ce dont vous avez besoin. Le wrapper im using est MemcachedProvider de codeplex. L'objet1 a été ajouté avec succès, mais l'objet linq ne l'a pas fait. – DucDigital
L'info supplémentaire aide, mais je ne vois pas de problème. Avez-vous débogué l'appel Add()? Qu'en est-il de l'utilisation d'un proxy TCP ou Wireshark pour voir si MemcachedProvider envoie même quelque chose à memcached pour cette requête? –