首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate MemCached w/ Protobuf-net.Enyim --它真的有效吗?

NHibernate MemCached w/ Protobuf-net.Enyim --它真的有效吗?
EN

Stack Overflow用户
提问于 2013-04-11 22:15:38
回答 1查看 297关注 0票数 2

我使用以下程序集将NHibernate 2级缓存与Enyim连接起来,使用Protobuf二进制序列化程序:

  • NHibernate
  • NHibernate.Caches.EnyimMemcached
  • Enyim.Caching
  • 原状网
  • protobuf-net.Enyim

最近我注意到,尽管使用EnyimMemcached连接了protobuf-net,但我很可能实际上没有使用该序列化程序,因为我的所有实体都只使用[Serializable]标记,而没有为属性标记[DataContract][ProtoContract]相应的有序数据/ProtoMembers。当我在添加适当的属性后直接与memcache交互时,我可以让protobuf与EnyimMemcached一起工作(或者手动将它们注册到protobuf的RuntimeTypeModel.Default类中)。

然而,即使我尽了应有的努力向protobuf-net注册我的类型,我也不认为来自NHibernate的任何缓存条目实际上都会被protobuf-net序列化,因为NHibernate.Caches.EnyimMemcached在DictionaryEntry对象中存储缓存中的条目:

代码语言:javascript
复制
bool returnOk = client.Store(
    StoreMode.Set, KeyAsString(key),
    new DictionaryEntry(GetAlternateKeyHash(key), value),
    TimeSpan.FromSeconds(expiry));

DictionaryEntry没有[DataContract][DataMember(Order = xx)]属性。这让我好奇..。

我甚至可以正确地利用NHibernate二级缓存的protobuf-net序列化程序吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-21 11:35:15

既然没有人回答你的问题,我不妨在这里说两句。我不太了解Memcached作为第二级缓存的情况,但是有一些强大的缓存解决方案需要最少的代码更改才能开始作为二级缓存使用,而序列化则由缓存处理。您可以使用NCache作为NHibernate的二级缓存

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15959821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档